- ベストアンサー
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)を取得したいのですが、何か言い方法はありませんでしょうか? また、新たなやり方あるのでしたら教えて頂けないでしょうか?
- みんなの回答 (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%
その他の回答 (1)
- you-m
- ベストアンサー率58% (190/327)
残念ながら、標準のコマンドセットの中で、当日以外の日付を取得することは不可能です。 Cygwin等に入っているgnuのdateコマンド等を使用するか、wsh + vbscript等でより柔軟な日付取得ができるコマンドを作成し、バッチファイルから呼ぶかといった話になります。 せめて、WindowsのdateがUNIX系のdateコマンドのように環境変数TZを見て変わるような仕様だったらよかったんですけどね。 その辺のノウハウは、参考URLを見てみてください。
お礼
ご回答有難う御座います。 URLとても参考になりました! ホントにUNIXだったら良かったんですけどね…(^^;)
お礼
ご回答有難う御座います。 やはり数値計算出来たんですね。。。 知りませんでした。