Ads By Google
特定の条件のときに計算結果を導き出す方法をコマンドプロンプトで考えておりますがわからないので教えて下さい。
特定条件時にファイル名を変更するコマンドプロンプトを考えております。set YYYYMM=%DATE:~-10,4%%DATE:~-5,2%
set /a LASTMONTH=YYYYMM
例えばこの式をバッチで2008年の1月、4月、7月、10月実行するとします。
実行した後:
1月に実行したときに if %MONTH:~-2%==01という条件になったとき前年度と10-12というもの(200710-12)の計算結果を得たいです。(計算結果というより代入??01という条件下では前年と10-12というものに変換する)
4月に実行したときに if %MONTH:~-2%==04という条件になったとき今年度と01-03というもの(200801-03)の計算結果が欲しいです。以下も同様です。
7月は if %MONTH:~-2%==07→200804-06
10月は if %MONTH:~-2%==10→200807-09
よろしくお願いします。
2008-02-13 22:17の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
回答(2)
2.
2008-02-14 05:06:26

とりあえず、だらだらIFを並べる回答
set YYYYMM=%DATE:~-10,4%%DATE:~-5,2% set /a MONTH=YYYYMM
set YYYY=%YYYYMM:~0,4% set MM=%YYYYMM:~4,2% IF %MM%==01 ( set /a Y=%YYYY%-1 set RESULT=%Y%10-12 ) IF %MM%==04 ( set RESULT=%YYYY%01-03 ) IF %MM%==07 ( set RESULT=%YYYY%04-06 ) IF %MM%==10 ( set RESULT=%YYYY%07-09 ) echo %RESULT%
回答レベル : 回答
ありがとうございました!大変助かりました
1.
2008-02-14 00:04:57
だらだらとIFを並べるだけでもいいような気がします。
何か計算するなら
set /a
でいいような気がします。
VBScript を使うというのも一つの方法かと思います。
ちょっと、伺いたいのですが、
%MONTH% は、%LASTMONTH%とは別なんでしょうか?
1,4,7,10月には実行されないということでいいのでしょうか?
何か計算するなら
set /a
でいいような気がします。
VBScript を使うというのも一つの方法かと思います。
ちょっと、伺いたいのですが、
%MONTH% は、%LASTMONTH%とは別なんでしょうか?
1,4,7,10月には実行されないということでいいのでしょうか?
回答レベル : アドバイス
Ads By Google
コメント(3)
#1. mr_r00
2008-02-14 00:52:19
LASTMONTHは間違えました・・・MONTHです。
1,4,7,10月に実行するという条件です。1月に実行すると「200710-12」という名前を作るといった感じです。
#2. BLUEPIXY
2008-02-14 04:40:15
>1,4,7,10月には実行されないということでいいのでしょうか?
は、
1,4,7,10月以外には実行されないということでいいのでしょうか?
の間違い(typo)でした
#3. BLUEPIXY
2008-02-15 15:20:46
回答2は、1,4,7,10以外の月に実行されないということが前提になっています。
実行文が1行の場合は、カッコはいらない。
他のIFが実行されないためにはGOTOで飛ばす。(実行されても条件がマッチしないので実害はない)




