【发布时间】:2017-06-11 17:46:35
【问题描述】:
我需要通过批处理文件运行 .exe 文件并将其输出重定向到文本文件。 问题是exe的路径和它获取的参数有很多空格和反斜杠,我无法让它工作。 它要么创建一个空白 txt 文件,要么根本不运行我的命令(错误地解析命令)。
exe路径:C:\Program Files (x86)\A S\Tools\Image\Image.exe
参数:
1) -v
2) C:\Program Files (x86)\A S\MyFiles\file_00_00_65
3) /0 /1 /2 /3 /5
4) C:\Program Files (x86)\A S\MyFiles\file_00_00_65\Images\AB.dtb
我尝试了以下解决方案:
一)
start "" "cmd /c ""C:\\Program Files (x86)\\AS\\Tools\\Image\\Image.exe" -v "C:\\Program Files (x86)\\A S\\MyFiles\\file_00_00_65" /0 /1 /2 /3 /5 "C:\\Program Files (x86)\\A S\\MyFiles\\file_00_00_65\\Images\\AB.dtb"" > Logs.txt 2>&1"
失败:找不到“C:\Program Files (x86)\A S\MyFiles\file_00_00_65\Images\AB.dtb”。
B)
start "" cmd /c ""C:\\Program Files (x86)\\AS\\Tools\\Image\\Image.exe" -v "C:\\Program Files (x86)\\A S\\MyFiles\\file_00_00_65" /0 /1 /2 /3 /5 "C:\\Program Files (x86)\\A S\\MyFiles\\file_00_00_65\\Images\\AB.dtb"" > Logs.txt 2>&1
失败:创建一个空的 txt 文件。
C)
>Logs.txt 2>&1 (
start "" cmd /c ""C:\\Program Files (x86)\\A S\\Tools\\Image\\Image.exe" -v "C:\\Program Files (x86)\\A S\\MyFiles\\file_00_00_65" /0 /1 /2 /3 /5 "C:\\Program Files (x86)\\A S\\MyFiles\\file_00_00_65\\Images\\AB.dtb""
)
失败:“\A 在这个时候是意外的。”
D)
cmd /c ""C:\\Program Files (x86)\\A S\\Tools\\Image\\Image.exe" -v "C:\\Program Files (x86)\\A S\\MyFiles\\file_00_00_65" /0 /1 /2 /3 /5 "C:\\Program Files (x86)\\A S\\MyFiles\\file_00_00_65\\Images\\AB.dtb"" > Logs.txt | type Logs.txt
失败:创建一个空的 txt 文件。
我也试过 start /B /wait... 等等。
【问题讨论】:
-
请确认您发布的代码 - 最好剪切并粘贴原件。我在案例 A) 中观察到,例如,您在代码路径中发布了
AS,而不是A S,但您声称有响应(可能来自可执行文件),因此找到了可执行文件。响应似乎表明引号被错误地解释了——我会删除cmd/c及其周围的引号并自己处理双"——但我无法测试它,因为我没有有问题的可执行文件。 -
我尝试按照您的建议进行操作,但 txt 文件为空。我无法添加 exe 文件,因为它是作为黑匣子给我的。
标签: batch-file cmd output exe