For loop 在(…)do集合中为/f%%i执行cmd

For loop 在(…)do集合中为/f%%i执行cmd,for-loop,batch-file,windows-scripting,For Loop,Batch File,Windows Scripting,在.bat文件中,无法执行以下行: for /f %%i in ('call _confutil.bat get DATA_PATH') do set DATA_PATH=%%i 它返回的错误为: 'call _confutil.bat get DATA_PATH' is not recognized as an internal or external command, operable program or batch file. 但是,在另一台Windows计算机上,执行此行没有问题。

在.bat文件中,无法执行以下行:

for /f %%i in ('call _confutil.bat get DATA_PATH') do set DATA_PATH=%%i
它返回的错误为:

'call _confutil.bat get DATA_PATH' is not recognized as an internal or external command, operable program or batch file.
但是,在另一台Windows计算机上,执行此行没有问题。

知道差异的原因是什么吗?

如果只是缺少
\u confutil.bat
,则错误消息只会是
“\u confutil.bat”无法识别[…]
。事实上,单词
call
是错误消息的一部分,这表明单引号是智能引号而不是常规引号,或者您的脚本是使用错误的编码保存的。(顺便说一句:这里不需要
call
,因为该命令是作为另一个进程执行的)您是否以管理员身份执行?由于以管理员身份运行脚本将在我的计算机上的System32中执行,因此对于('dir')中的/f%%i do echo%%i,将返回错误:“dir”未被识别为内部或外部命令、可操作程序或批处理文件。另一台机器没问题。两者都是系统管理员,路径相同。在这两台计算机上,
set-comspec
说明了什么?