Windows(2000SP4, Professional)のコマンドプロンプトについて質問です。


ファイル名にタイムスタンプ文字列を付与しようと思い、
以下のようなバッチファイルを書きました。

rem タイムスタンプ文字列を作成
set nowdate=%date:~2,4%%date:~7,2%%date:~-2%
set nowtime=%time:~0,2%%time:~3,2%%time:~6,2%
set timestamp=%nowdate%%nowtime%

上記の記述でだいたいうまくいくのですが、
時間がひと桁(1~9時)のときに環境変数timeに
ひと桁の文字列しか格納されないため上手く動きません。

>echo %time%
9:28:01.49
>set nowdate=%date:~2,4%%date:~7,2%%date:~-2%
>set nowtime=%time:~0,2%%time:~3,2%%time:~6,2%
>set timestamp=%nowdate%%nowtime%
>echo %timestamp%
20080131 92801

ここからが質問です。

ひと桁の時間のときには20080131092801のように
0でパディングするような書き方を教えてください。
できれば、コマンドプロンプトのコマンドだけでおこないたいです。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/01/31 10:24:59
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:chuken_kenkou No.1

回答回数722ベストアンサー獲得回数54

ポイント35pt

時刻が1時~9時の場合に、先頭に0を入れるには、以下のような方法があります。

set time2=%time: =0%
echo %time2:~0,2%%time2:~3,2%%time2:~6,2%

バッチ・ファイル中で日付をファイル名に使用する − @IT

id:kanouk

ありがとうございます。

空白を0で置き換えればいいんですね。

2008/01/31 10:24:50
id:GoldenDawn No.2

回答回数426ベストアンサー獲得回数81

ポイント35pt
set nowtime=%time:~0,2%%time:~3,2%%time:~6,2%
set nowtime=%nowtime: =0%

ではどうでしょう

id:kanouk

ありがとうございます。

解決しました!

2008/01/31 10:24:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません