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 09:32:59
  • 終了:2008/01/31 10:24:59

回答(2件)

id:chuken_kenkou No.1

chuken_kenkou回答回数722ベストアンサー獲得回数542008/01/31 10:03:12

ポイント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

GoldenDawn回答回数426ベストアンサー獲得回数812008/01/31 10:10:02

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

ではどうでしょう

id:kanouk

ありがとうございます。

解決しました!

2008/01/31 10:24:26

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません