我有一个BAT脚本,最后一行是问题
SET program=%1
SET PWD=%cd%
cd "%~dp0"
"%PWD%\%program%" "filename.txt" ^> "%PWD%\Output.txt" 2^>^&1
这正确地吐出来:
" C:\路径\的Program.exe" " FILENAME.TXT" > " C:\路径\ Output.txt的" 2 - ;&安培; 1
然而,它说
无法打开输出文件>
继续使用脚本,不创建任何文件。如果我复制并粘贴吐出的东西,它就会完美运行。
注意:行为在升高的CMD中也是可重现的。
那么,如何在批处理脚本中运行EXE,并将stdout
和stderr
重写为同一文件,而不会出现访问错误?
答案 0 :(得分:1)
所以你的program.exe接受一个filename.txt参数并输出所有到Output.txt
尝试不使用^ simbols:
"C:\path\program.exe filename.txt" > "C:\Path\Output.txt" 2>&1
批处理不能要求权限。如果您在c:\下,则需要使用管理权限执行bat文件。