ギリギリ行けるお一人様のライン

2ヶ月前 3ヶ月前の計算をしたいと思っております。
途中までわかるのですが例えば前年度という条件になったとき失敗してしまいます。
2ヶ月前:
@echo off
set YYYYMM=%DATE:~-10,4%%DATE:~-5,2%
set /a TWOMONTHAGO=YYYYMM-2
if %TWOMANTHAGO:~-2%==00 set /a TWOMONTHAGO+=12-100
copy C:\test1\AAA%TWOMONTHAGO%.txt C:\test2\AAA3.txt

if文が間違っているのはわかりますがどう計算したらよいか思いつきません・・・よろしくお願いします。

3ヶ月前:
@echo off
set YYYYMM=%DATE:~-10,4%%DATE:~-5,2%
set /a THREEMONTHAGO=YYYYMM-3
if %THREEMONTHAGO:~-2%==00 set /a THREEMONTHAGO+=12-100
copy C:\test1\AAA%THREEMONTHAGO%.txt C:\test2\AAA3.txt

A 回答 (1件)

たとえば、


set YYYYMM=%DATE:~-10,4%%DATE:~-5,2%
には現在なら200802と入りますね。
set /a TWOMONTHAGO=YYYYMM-2
とすると、200800 が入りますね。
if %TWOMANTHAGO:~-2%==00 set /a TWOMONTHAGO+=12-100
で、00と一致するので 200800 - 100 + 12 で 200712 になりますね。
(これはOKですね)

set /a THREEMONTHAGO=YYYYMM-3
には、200799 と入りますね。
if %THREEMONTHAGO:~-2%==00 set /a THREEMONTHAGO+=12-100
では00を比較しているので合致しませんね。
じゃあ末尾2桁が何だったら +12-100 を計算する条件になるのでしょう?
それは、末尾2桁=00または12<末尾2桁<=99の時です。
条件が二つありますから2行で記載します。

if %THREEMONTHAGO:~-2%==00 set /a THREEMONTHAGO+=12-100
if %THREEMONTHAGO:~-2% GTR 12 set /a THREEMONTHAGO+=12-100

GTR という比較演算子についてはif /?コマンドで確認して下さい。
    • good
    • 2

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報