Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 此批处理脚本中的语法错误是什么?_Batch File_Substring - Fatal编程技术网

Batch file 此批处理脚本中的语法错误是什么?

Batch file 此批处理脚本中的语法错误是什么?,batch-file,substring,Batch File,Substring,我试图从字符串中获取一个子字符串,并检查它是否等于“System”。我正在从%%a获取字符串。当我运行脚本时,我得到错误“unexpected”(“。如果我删除for循环中的行(“set _varsub…”),错误就会消失。因此我认为我的substring命令有语法错误。有人能告诉我吗 for /f "tokens=1,3,4,* delims=: " %%a in ('e:\DeployTools\handle.exe %deploymentdir%\%%i ^| findstr /i p

我试图从字符串中获取一个子字符串,并检查它是否等于“System”。我正在从%%a获取字符串。当我运行脚本时,我得到错误“unexpected”(“。如果我删除for循环中的行(“set _varsub…”),错误就会消失。因此我认为我的substring命令有语法错误。有人能告诉我吗

  for /f "tokens=1,3,4,* delims=: " %%a in ('e:\DeployTools\handle.exe %deploymentdir%\%%i ^| findstr /i pid: ')  do @(


        set _varsub=%%a
        set _varsub=%_varsub:~0,6%
        if not %_varsubstring%==System (

        // do something
      )

尝试在if语句中的变量周围加引号

if not '%_varsubstring%'=='System' (...
意外错误是因为_varsubstring在该点未定义,因此该行的计算结果为:

if not ==System (

正如StockKnight所写,由于未定义变量,您的代码将失败,
但即使这样,它也会失败,因为括号内的扩展对percentd不起作用。
在您的情况下,应该使用带感叹号的延迟扩展

set _varsub=%%a
set _varsub=!_varsub:~0,6!