内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