2013-02-14 153 views
0
if exist "C:\Windows\System32\updatevmcheck.txt" (
set /p Build=<C:\Windows\System32\updatevm.txt 
if %Build% LSS 2 (
echo "Run Code Here" 
) else (
exit 
) 
echo 2 > C:\Windows\System32\updatevmcheck.txt 
exit 
) 
ELSE (
echo 1 > C:\Windows\System32\updatevmcheck.txt 
exit 
) 

以上是我目前的代碼。基本上它會檢查文件是否存在,如果存在,它會檢查文件以查看文件中的數字是否小於您指定的文件。如果是這樣,它運行一些代碼,然後更新文件中的數字然後退出。否則,它會用數字創建文件然後退出。我相信我的語法是正確的,我可以運行個別行,但是當我創建我的批處理文件時,它甚至似乎無法通過if exists語句。任何人都可以看到任何公然錯誤的,除了可憐的格式:)。批處理腳本比較問題

+0

請注意,除非您的意圖實際上是退出命令處理器,否則不應該在批處理文件中調用'exit'。在互動式會議中。要退出批處理文件,可以使用'exit/b'或'goto:eof'。 – Joey 2013-02-14 17:24:23

回答

1

您正在設置一個塊內的變量並在同一個塊中使用它的值。這不能用於正常的變量擴展(這發生爲一個命令(這包括一個完整的塊)被解析,而不是當它運行時)。爲了解決這個問題,你需要使用延遲擴展,所以把下面的批處理文件的開頭:

​​

然後用!Build!,而不是%Build%。請參閱help set瞭解更多詳情和解釋(我現在已經寫了幾十次))。

+0

似乎這樣做,謝謝你的幫助! – user2072977 2013-02-14 19:22:36