WinPE中缺少运算符

时间:2014-05-21 06:22:34

标签: batch-file windows-7 winpe

我有一个批处理文件,我需要在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
)
)

2 个答案:

答案 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
)