批次檔:環境變數“if”字串測試

批次檔:環境變數“if”字串測試

在批次檔中,我呼叫另一個批次檔來設定許多日期環境變數。

數據變數設定正確,我可以調用它們。

但是,在這種情況下,我需要比較其中兩個環境變數並確定它們是否相同,以便有條件地啟動批次的其餘部分(或跳到結束/退出)。

但是,我似乎無法獲得執行兩個環境變數的測試(比較)的條件。

它們被定義為%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

相關內容