內DOS環境變量下面的DOS腳本段有一個錯誤:正則表達式識別括號
if not exist %MyFolder% (
mkdir %MyFolder%
if %errorlevel% GEQ 1 (
rem WARNING: the line above has a bug!
rem %errorlevel% will be the errorlevel
rem of the if statement because of the (parentheses)
echo Error: Could not create folder %MyFolder%
goto AnErrorOccurred
)
)
的解決辦法是使用setlocal enabledelayedexpansion
如下:
setlocal enabledelayedexpansion
if not exist %MyFolder% (
mkdir %MyFolder%
if !errorlevel! GEQ 1 (
rem WARNING: the line above has a bug!
rem !errorlevel! will be the errorlevel
rem of the if statement because of the (parentheses)
echo Error: Could not create folder %MyFolder%
endlocal & goto AnErrorOccurred
)
)
endlocal
的原因是可用的完整解釋這裏:Batch file fails to set environment variable within conditional statement
我想審計我的代碼來找到這個錯誤的實例,我認爲正則表達式是一個合適的匹配,但沒有設法得到一個工作...
我想的成分應該是: 匹配的環境變量,%percentsigns% 圍內。即(括號內)
有什麼建議?
爲什麼要打擾這樣的事情?使用vbscript。它隨你的系統而來。 – ghostdog74 2009-07-28 01:43:06
你的意思是括號? – 2009-07-28 01:53:55
是的,JP,我的意思是括號,謝謝 – 2009-07-30 08:22:13