やりたいこと検索

数字を任意の桁で0埋めする

 

目次

 

数字を任意の桁で0埋めする

例えば、数字「1」から「10」を出力するとき、「01」から「10」のように一桁の数字には前に「0」を付け足すことを考えます。

まず、普通に1から10までの数字を書き出してみます。ここでは「for」文を使うことにします。以下はそのバッチファイルと実行結果です。

数字を任意の桁で0埋めする 1~10までを表示する

このように、1から9までの出力は「0」は付きません。

これを「01~10」のようにするには、まず始めに数字の前に「0」を付け足してから、後半の二文字を切り取る操作を加えればよいでしょう。

【「0」を付け足す手順(1の場合)】
01 -(0を付け足す)-> 001 -(後半の二文字を切り取る)-> 01

【「0」を付け足す手順(10の場合)】
10 -(0を付け足す)-> 010 -(後半の二文字を切り取る)-> 10

「0」を付け足す操作は単純に「set num=0%%a」となります。そして、変数「num」から後半の二文字を切り取るには、「!num:~-2,2!」とします。(※文字列の切り取りに関しては、「文字列を自在に切り取る -やりたいこと検索-」に詳しい解説があります。)

この操作を前述のバッチファイルに組み込んでやると、

となります。6行目と7行目にコードを追加しています。

以下、実行結果も期待通りです。

数字を任意の桁で0埋めする 0埋めした1~10までを表示する

これを三桁で表現したい場合は、上のプログラムを

と変えればオッケーです。もちろん、四桁以降も同様にして「0」を付け加えることができます。

 

日付を表示する(例:2017/01/01)

「0」を数値に付け加える実用例として、日付を扱う場合があります。日付の「2016/09/28」から「2016/10/07」までを連続して表示してみましょう。

5行目から7行目では、始まりの一日前の年月日を各変数に代入しています。9行目からの「for」の中で、日にちを1日ずつ更新しながら表示させていきます。日にちの更新は、10行目です。11行目から14行目は9月の最終日である30日を過ぎれば、日にちを1日に戻し月を10月に進めています。

あとは前節で説明した通り、数字の前に「0」を付け足して(15, 16行目)から、後半の二文字を切り取る操作(18, 19行目)を行い表示しています。

Windowsバッチファイル初心者へ向けた入門書を作成しました


Windowsバッチファイル初心者の方へ向けた入門書(PDF)を作成しました。


・初めてWindowsバッチファイルを勉強してみようと思っている方

・使ったことはあるが一から基礎を学び直したい方


へ向けて丁寧な解説を行っています。


「全くプログラムを知らない方でも、この入門書を読んだ後には、Windowsバッチファイルの中級者レベルになれるように」をコンセプトに執筆したものです。


この本を読めば、バッチファイルを使ったファイルやフォルダの操作に関しては一通りのことができるようになります。そうなればもう十分中級者と呼べるレベルですので、あとは自分のやりたいことを実現しようとする中で徐々に知識を蓄えていくだけですぐに上級者へなれるでしょう。


詳しくみる

関連ページ

コメントを残す