我有这个脚本,脚本运行正常。除了一部分。我试图在每次查询后返回错误级别以确定我的错误级别。我知道我的语法有问题请帮助。
@echo off
setlocal enabledelayedexpansion
set "ports=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports"
rem get only the first token of each line of "reg query"
for /f %%I in (
'reg query "%ports%"'
) do (
IF !errorlevel!==0 echo(%%I | findstr /i "c:\\convertdoc\\output\\silentprinttemp\\.*\.ps" >NUL && (
rem (if "findstr" didn't exit with an abnormal error code)
echo Deleting item %%I
ECHO [PW-MOD] reg delete "%ports%" /v "%%I" /f
)
)
[由Dk 68 61 63 6b
编辑回复评论]
[重新编辑PW以加入折线并禁用可能具有破坏性的指令'reg delete'
]
答案 0 :(得分:0)
在help set
中查找延迟扩展。它完全解释了你的问题。
要解决它,请使用
setlocal enabledelayedexpansion
然后!errorlevel!
代替%errorlevel%
。
另一种选择是使用
if not errorlevel 1
(稍有不同的语义,可能与您的情况无关)。