在批次檔中,我呼叫另一個批次檔來設定許多日期環境變數。
數據變數設定正確,我可以調用它們。
但是,在這種情況下,我需要比較其中兩個環境變數並確定它們是否相同,以便有條件地啟動批次的其餘部分(或跳到結束/退出)。
但是,我似乎無法獲得執行兩個環境變數的測試(比較)的條件。
它們被定義為%today2%(今天的日期設定為MMDDYY)和%firstmonday%,這是計算出的當月第一個星期一並設定為MMYYDD)。今天(2015 年 10 月 14 日)運行時,它們返回 101415 和 110215。
然後我嘗試透過以下方式測試這些:
if %today2%==%firstmonday% goto GO else END
然而,測試似乎被完全忽略了——無論如何,測試總是繼續進行。
如果我echo %today%
和%firstmonday%
他們當然不同,但不知何故測試評估為真並執行。
如果我沒有清楚地解釋自己,請告訴我,我會盡力做得更好。我在這方面是個新手,但已經研究了一段時間,似乎無法找出邏輯缺陷。
答案1
我建立了兩個批次檔: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