バッチファイルで、別のバッチファイルを呼び出して、いくつかの日付環境変数を設定しています。
データ変数は適切に設定されており、呼び出すことができます。
ただし、この場合、残りのバッチを条件付きで起動する(または終了/終了するまでスキップする)ために、これらの環境変数の2つを比較し、それらが同じであるかどうかを判断する必要があります。
ただし、2つの環境変数のテスト(比較)を実行するための条件を取得できないようです。
これらは、%today2%(今日の日付をMMDDYYとして設定)および%firstmonday%(月の最初の月曜日に計算され、MMYYDDとして設定)として定義されます。今日(2015年10月14日)実行すると、これらは101415と110215を返します。
次に、これらを次の方法でテストしようとしています。
if %today2%==%firstmonday% goto GO else END
ただし、テストは完全に無視されているようです。テストは常にGOに進みます。
もし私が echo %today%
および%firstmonday%
もちろん違いますが、どういうわけかテストはtrueと評価され、実行されます。
私が自分自身を明確に説明していない場合は、私に知らせてください。私はそれをより良くするように努めます。私はこれに関してはかなり初心者ですが、しばらくの間それをいじくり回していて、論理的な欠陥を理解することができないようです。
2つのバッチファイルを作成しました:b1.cmd
およびb2.cmd
続く。最初、 b2.cmd
説明されているように変数を設定します:
set today2=101415
set firstmonday=110215
次にb1.cmd
これは希望どおりに機能します:
@echo off
call b2.cmd
echo today=%today2%
echo firstmonday=%firstmonday%
if "%today2%"=="%firstmonday%" (
goto go
) else (
goto end
)
:go
echo at go
goto :EOF
:end
echo at end