我有一个批处理文件,我需要在WinPE中运行但是我得到了#34;缺少运营商"错误。我可以在普通Windows 7中运行批处理文件。
我认为在WinPE某些环境中。变量不起作用。
有人可以帮忙吗?
rem Print the percentage encrypted details
setlocal enabledelayedexpansion
if "%%i %%j"=="Percentage Encrypted:" (
set var=%%k
set var=!var:~0,-1!
if !Percent! LSS !var! (
echo Percentage Encrypted is !Percent!
set /A Percent=!var!/5
set /A Percent=!Percent!*5+5
)
if !Percent!==!var!(
echo Percentage Encrypted is !Percent!set /A Percent=!Percent!+5
)
)
答案 0 :(得分:0)
正如我在评论中建议的那样,问题是由于null变量。为防止代码引发错误,您需要用双引号将其括起来,但如果没有变量值,它将无法按照您希望的方式运行。
我注意到您的代码的结构就好像它是for-loop
的一部分。如果是这样,请向我们展示试图帮助您的完整代码:
rem Print the percentage encrypted details
setlocal enabledelayedexpansion
if "%%i %%j"=="Percentage Encrypted:" (
set var=%%k
set var=!var:~0,-1!
if "!Percent!" LSS "!var!" (
echo Percentage Encrypted is !Percent!
set /A Percent=!var!/5
set /A Percent=!Percent!*5+5
)
if "!Percent!"=="!var!"(
echo Percentage Encrypted is !Percent!set /A Percent=!Percent!+5
)
)
答案 1 :(得分:0)
问题可能是语句太靠近左括号(
而您也可能想要将set /a
放在单独的行上;),请参阅建议改变如下:
if "!Percent!"=="!var!" (
echo Percentage Encrypted is !Percent!
set /A Percent=!Percent!+5
)