从Windows批处理脚本向文件中写入“与”符号时出现问题

zbwhf8kr  于 2023-03-04  发布在  Windows
关注(0)|答案(1)|浏览(131)

由于这个问题范围之外的原因,我需要从另一个批处理文件动态地创建一个批处理文件。本质上,我有一系列类似这样的命令:

echo some command > newfile.cmd
echo more commands >> newfile.cmd
echo and more commands >> newfile.cmd

除了一个特定的东西,所有这些都能正常工作。其中一个命令是:

myprogram.exe >> %LOG_FILE% 2>&1

在我的一生中,我都无法将它正确地输出到新的批处理文件中。我尝试了各种选项,包括用^ char转义和号,将整个内容放入双引号字符串赋值语句中,双转义-几乎所有内容!我所做的最好的是输出

myprogram.exe >> %LOG_FILE% 2>&

然而其他的一切都被截断了。我怎么才能达到我所需要的呢?

0sgqnhkj

0sgqnhkj1#

您可以转义问题字符,如重定向<|>和与号&,使用插入符号^

@(
    echo some command
    echo myprogram.exe 1^>^>"%LOG_FILE%" 2^>^&1
    echo and (even^) more commands
) 1>"newfile.cmd"

如果使用这种方法,只需重定向一次,而不是较慢的多次重定向,那么还必须转义嵌套的右括号)和插入符号^,如上所示。

相关问题