If statement 批处理文件..(此时意外)

If statement 批处理文件..(此时意外),if-statement,batch-file,cmd,error-handling,If Statement,Batch File,Cmd,Error Handling,我开发了一个批处理文件,用于检查给定excel表中的值。 并根据Excel工作表中的值(值为0或大于零)决定要执行的操作 代码如下 @echo off setlocal EnableDelayedExpansion cd\ D: cscript //nologo testexcel.vbs IF !ERRORLEVEL! EQU 1 ( taskkill /F /IM explorer.exe *****MORE ACTIONS HERE***** SET running=0

我开发了一个批处理文件,用于检查给定excel表中的值。 并根据Excel工作表中的值(值为0或大于零)决定要执行的操作

代码如下

@echo off
setlocal EnableDelayedExpansion
cd\
D:
cscript //nologo testexcel.vbs

IF !ERRORLEVEL! EQU 1 (
  taskkill /F /IM explorer.exe
  *****MORE ACTIONS HERE*****
  SET running=0
  FOR /f "tokens=*" %%A IN ('tasklist^ /v^| findstr /i /c:"iexplore.exe"') DO SET running=1

  IF %running% == 0 (
    explorer.exe
  )

) ELSE ( 
  ***OTHER ACTIONS HERE***
)
exit
代码将使用cscript命令运行VBscript,并将返回一个错误级别值,错误级别为1或其他。出于某种原因,我一直收到以下错误:

( was unexpected at this time.

我知道这可能是因为括号内的所有命令和变量都已展开。但我使用的是
setlocal EnableDelayedExpansion
,但仍然得到相同的错误。

您显示的代码在else语句的开始括号之前有一个额外的结束括号。问题是,基于显示的代码是一个打字错误,请删除此问题,因为这对其他用户没有好处。很抱歉,我编辑了此问题并删除了额外的括号。问题仍然存在。无需在此延迟展开
errorlevel
,但
运行
应该是。未包含可能会导致错误的额外代码行e提出了有关运行变量的扩展问题(一个不必要的变量,可以用|或条件命令替换)。以后在发布问题时,请确保您提供的代码是您遇到问题的脚本的准确、可复制的最小示例。否则会浪费其他用户评估您的脚本错误的时间