在Windows 7上使用cygwin,需要:
cmd
START
)我已经尝试过(在cygwin中执行):
cmd /C "START cmd /C \"executableFileName -f -n 100 > logFilePath.txt\""
上面的代码有很多变体,但没有任何效果。
我没有cygwin,所以无法测试。但请尝试以下操作。
cmd /c start cmd /c "executableFileName -f -n 100 >logFilePath.txt"
/c
后面的命令周围的引号不是必需的,因此您不需要在第一个cmd /c
中使用它们。它们在第二个cmd /c
中很有用,可以防止在执行最终命令之前激活重定向。
关于您的原始代码 - cmd.exe 的转义字符是
^
,而不是 \
,一旦引用开始,您就无法转义引用。这就是为什么我选择不在最外面包含任何引号cmd /c
如果您确实需要
cmd
来运行命令,我认为您能做的最好的事情是:
powershell -c 'cmd /c "executableFileName -f -n 100 > logFilePath.txt"'
调用 Windows 程序时,cygwin 将
/C
翻译为 C:\
(如 start /b program
--> start B:\ program
)。这把事情搞砸了。
由于 powershell 接受
-c
而不是 /c
,因此它可以工作。在其命令中,您可以安全地使用 /c
。