bat文件中未定义的变量错误

时间:2012-08-20 10:52:58

标签: windows batch-file

我在搜索网站后尝试使用命令构建批处理文件。我试图找到正在运行的进程的数量/计数,然后使用if执行另一个命令,如果在任何情况下此类进程的数量都超过5个。

当我在CMD提示符中逐行运行语句时,它可以正常工作 但是,当我通过一个bat文件运行它时,它会给出一个错误 - 这个时候是意外的。

这是脚本。此外,我不确定是否使用了正确的If语句(我在找到你之前进行了搜索和使用,但仍然只是加入):

for /f "tokens=1,*" %a in ('tasklist ^| find /I /C "iexplore.exe" ') do 
@set var=%a
echo %var%
if %var% <= 5
::echo "hi"
::end if

此外,还有一种语法:

wmic process where name="iexplore.exe" | find "iexplore.exe" /c

但我不知道如何将此命令的输出分配给任何变量,并继续将此命令的值与5进行比较。

1 个答案:

答案 0 :(得分:1)

在批处理文件中使用时,需要对FOR命令使用double%。

@echo off
set var=0
for /f "tokens=1,*" %%a in ('tasklist ^| find /I /C "explorer.exe" ') do set var=%%a
echo %var%
if %var% leq 5 (
  echo less or equal to 5
) else (
  echo 5 or more
)