• ベストアンサー

Windows2000 バッチファイルコマンドについて

こんにちは。 バッチファイルコマンド(DOSコマンド?)について質問があります。 まずやりたい事としては、 「前月日付のフォルダを自動作成したい」 です。 当月日付をもってくる為には以下の様なコマンドでできました。 for /f "tokens=1-2" %%l in ('date /t') do set today=%%l for /f "delims=/ tokens=1-2" %%a in ('echo %today%') do set yymm=%%a%%b このコマンドを実行すると、例えば、%yymm%には200507が入っています。 このコマンドを応用して、前月日付(200506)を取得したいのですが、何か言い方法はありませんでしょうか? また、新たなやり方あるのでしたら教えて頂けないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

yymmに当月200507が入ったのだから後は簡単です。set /a コマンドで四則演算が出来ます。月から1を引いて、下二桁が00になったら年またぎなので、年を1引くつまり100を引いて、月を12を足せばよいです。 set /a yymm-=1 if %yymm:~-2%==00 set /a yymm+=-100+12 なお、当月を求めるのはお書きの方法でも出来ますが次の方が簡単です。 set yymm=%DATE:~-10,4%%DATE:~-5,2%

makaroni99
質問者

お礼

ご回答有難う御座います。 やはり数値計算出来たんですね。。。 知りませんでした。

その他の回答 (1)

  • you-m
  • ベストアンサー率58% (190/327)
回答No.1

残念ながら、標準のコマンドセットの中で、当日以外の日付を取得することは不可能です。 Cygwin等に入っているgnuのdateコマンド等を使用するか、wsh + vbscript等でより柔軟な日付取得ができるコマンドを作成し、バッチファイルから呼ぶかといった話になります。 せめて、WindowsのdateがUNIX系のdateコマンドのように環境変数TZを見て変わるような仕様だったらよかったんですけどね。 その辺のノウハウは、参考URLを見てみてください。

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html
makaroni99
質問者

お礼

ご回答有難う御座います。 URLとても参考になりました! ホントにUNIXだったら良かったんですけどね…(^^;)

関連するQ&A