プロが教えるわが家の防犯対策術!

初めまして。質問させていただきます。
バッチファイルで複数のフォルダからエクセルファイルをひとつのフォルダにコピーする方法を教えてください。
条件としては、
Aフォルダの名前:0413荒川
Bフォルダの名前:0413葛飾
Cフォルダの名前:0413台東
保存先:会計東京
毎日日付が変わる為、下記では対応出来ませんでした。

echo off
copy D:\会計\東京\4月分\0413荒川\*.xls 会計東京
copy D:\会計\東京\4月分\0413葛飾\*.xls 会計東京
copy D:\会計\東京\4月分\0413台東\*.xls 会計東京

0413は今日の日付になります。
この、0413を自動で取得する方法を教えてください。
よろしくお願いします。

A 回答 (3件)

別のやり方で。



set TODAY=%date:~-6%
set TODAY=%TODAY:/=%

の二段階の手間になりますが、これでも
TOADYの内容が今日なら 0417になります。

ただし、これは 9x系のWindowsでは使えません。

とここまで書いて#1の方の回答を見て思いついたのが

for /F "delims=/ tokens=2,3" %F in ("%date%") do echo %F%G

これでも 0417 になりました。

補足:
set /? するとわかりますが、%DATE%は組込みの環境変数で
その日の日付文字列を保持しています。
    • good
    • 0
この回答へのお礼

ありがとうございました。
思い通りのものができました。
更に勉強したいと思います。

お礼日時:2007/04/17 17:05

あ, DATE なんて環境変数あるんだ. 知らなかった....>#2


明らかに #2 の方が筋がいいので, そちらを使うことを強く勧めます.
わかりやすさでは #2 の前の方がいいと思う....
    • good
    • 0

Windows XP Professional が動いている手元の計算機で実験しました.


まず現在の日付を表示する方法ですが,
date < nul
でできます. で, これをうまくパースすればいいんですが
for /F "delims=/ tokens=2,3" %F in ('date < nul') do echo %F%G
ではうまくいきません (エラーになります). ところが
date < nul
という (1行だけの) 内容で today.bat を作ると
for /F "delims=/ tokens=2,3" %F in ('today.bat') do echo %F%G
で現在の日付が MMDD の形で表示されます.
ということで,
for /F "delims=/ tokens=2,3" %F in ('today.bat') do set TODAY=%F%G
とやると環境変数 TODAY に現在の日付が設定されます. その内容は %TODAY% という形で使えます.
    • good
    • 0
この回答へのお礼

ありがとうございました。
思い通りのものができました。
更に勉強したいと思います。

お礼日時:2007/04/17 17:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!