Batch file 写入批处理文件以重复包含%PATH%的段落时出现问题
我已经编写了下面的批处理文件,该文件将把100个段落写入.bat文件,并对引用的文件名进行增量编号更改Batch file 写入批处理文件以重复包含%PATH%的段落时出现问题,batch-file,Batch File,我已经编写了下面的批处理文件,该文件将把100个段落写入.bat文件,并对引用的文件名进行增量编号更改 for /l %%N in (1 5 500) do ( echo cd /D "C:\batch" echo set PATH=C:\batch; &PATH% echo echo Simulation 'g=0.00%%N.pre' started... echo call %SOLVERQSP%-fp 1 -nt 3 ^ "C:\batch\0.00%%N.pre" > "
for /l %%N in (1 5 500) do (
echo cd /D "C:\batch"
echo set PATH=C:\batch; &PATH%
echo echo Simulation 'g=0.00%%N.pre' started...
echo call %SOLVERQSP%-fp 1 -nt 3 ^
"C:\batch\0.00%%N.pre" > "C:\batch\g=0.00%%N.out"
echo echo Simulation 'g=0.00%%N' finished...
echo echo.
问题是当存在%PATH%和%SOLVERQSP%命令时,批处理文件没有创建。如果我删除这些,脚本运行良好。任何关于我哪里出了问题或我如何避免这一点的建议,只需将它们加倍以避开
%
:
echo set PATH=C:\batch;%%PATH%%
您应该使用一些引号,避免在您的案例中使用插入符号
for /l %%N in (1 5 500) do (
echo cd /D "C:\batch"
echo set "PATH=C:\batch; %PATH%"
echo echo Simulation 'g=0.00%%N.pre' started...
echo call %%SOLVERQSP%%-fp 1 -nt 3 "C:\batch\0.00%%N.pre" > "C:\batch\g=0.00%%N.out"
echo echo Simulation 'g=0.00%%N' finished...
echo echo.
)
&PATH%
只是一个输入错误吗?另外,您是否在一行上尝试了echo调用%SOLVERQSP%…
命令,即没有^
字符?我不知道%SOLVERQSP%
做什么,但您真的需要为每次迭代更改目录和设置路径吗?echo只是为了演示,还是尝试将输出重定向到新的批处理文件?这样就不会收到错误消息?确保将ECHO设置为打开
,以查看任何错误消息。缺少引号和语法错误(如&PATH%
)应该亮起,但可能所有内容都被解释为要回显的字符串。尽管如此,即使没有错误,您也应该在这里发布输出。这主意不错,但它会失败,因为它会扩展为零<代码>^%PATH^%
试图展开%PATH^%
,这应该是未定义的。@jeb它在命令行上使用插入符号工作,在批处理文件中需要双-%
。@marapt-是,但代码似乎是批处理文件。即使在命令行上,它也不是很稳定,因为它还会查看是否存在变量path^
,并且只有在未定义的情况下,它才会输出%path%
@jeb,这就是我测试和更新答案的原因。关于path^
在命令行中的精彩内容!