0

我有一个需要在 WinPE 中运行的批处理文件,但出现“缺少操作员”错误。我能够在普通 Windows 7 中运行批处理文件。

我认为在 WinPE 中某些 Env。变量不工作。

有人可以帮忙吗?

代码:

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
)
)
4

2 回答 2

0

正如我在评论中建议的那样,问题是由于一个空变量。为了防止代码引发错误,您需要用双引号将其括起来,但是如果没有变量值,它将无法按照您希望的方式运行。

我注意到您的代码的结构就像它是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
)
)
于 2014-05-21T06:53:56.453 回答
0

问题可能是该语句太靠近左括号(,您也可能希望将set /a放在单独的行上;),请参阅下面的建议更改:

if "!Percent!"=="!var!" (
echo Percentage Encrypted is !Percent!
set /A Percent=!Percent!+5
)
于 2014-05-21T07:26:37.357 回答