提问人:Aleks G 提问时间:2/27/2023 更新时间:2/28/2023 访问量:55
从 Windows 批处理脚本将 & 号写入文件时出现问题
Issues writing ampersand into a file from windows batch script
问:
由于此问题范围之外的原因,我需要从另一个批处理文件动态创建一个批处理文件。从本质上讲,我有一个严肃的命令,如下所示:
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>&
但是,其他所有内容都会被截断。我怎样才能实现我的需求?
答:
0赞
Compo
2/28/2023
#1
您将使用插入符号转义问题字符,例如重定向 |和 & 符号:<
>
&
^
@(
echo some command
echo myprogram.exe 1^>^>"%LOG_FILE%" 2^>^&1
echo and (even^) more commands
) 1>"newfile.cmd"
如果使用此方法,则仅重定向一次,而不是多次重定向较慢的重定向,则还必须使用插入符号转义嵌套的右括号,如上所示。)
^
评论
%
echo myprogram.exe ^>^> %%LOG_FILE%% 2^>^&1