バッチ ファイルで、別のバッチ ファイルを呼び出して、いくつかの日付環境変数を設定しています。
データ変数は適切に設定されており、呼び出すことができます。
ただし、この例では、残りのバッチを条件付きで起動する (または終了/終了にスキップする) ために、これらの環境変数のうち 2 つを比較し、それらが同じであるかどうかを判断する必要があります。
しかし、2 つの環境変数のテスト (比較) を実行するための条件を取得できないようです。
これらは、%today2% (今日の日付は MMDDYY として設定) と %firstmonday% (月の最初の月曜日を計算して MMYYDD として設定) として定義されます。今日 (2015 年 10 月 14 日) に実行すると、101415 と 110215 が返されます。
次に、次の方法でこれらをテストします。
if %today2%==%firstmonday% goto GO else END
ただし、テストは完全に無視されるようで、テストは常に GO に進みます。
もちろん、Iecho %today%
と%firstmonday%
they は異なりますが、何らかの理由でテストは true と評価され、実行されます。
説明がわかりにくい場合は、お知らせください。もっとわかりやすく説明できるよう努力します。私はこの分野では初心者ですが、しばらくいじくり回していますが、論理的な欠陥がわかりません。
答え1
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