使用cygwin以网络方式执行cmd命令并重定向stdout

使用cygwin以网络方式执行cmd命令并重定向stdout,cmd,cygwin,Cmd,Cygwin,在Windows 7上使用cygwin时,需要: 在cmd 立即返回(使用START) 将标准输出重定向到文件 我试过(在cygwin执行): 上面这一行有很多变体,但都不起作用。我没有cygwin,所以无法测试。但是试试下面的方法 cmd /c start cmd /c "executableFileName -f -n 100 >logFilePath.txt" /c后面的命令周围的引号不是必需的,因此在第一个cmd/c中不需要它们。它们在第二个cmd/c中很有用,以防止在执行最

在Windows 7上使用cygwin时,需要:

  • cmd
  • 立即返回(使用
    START
  • 将标准输出重定向到文件
我试过(在cygwin执行):


上面这一行有很多变体,但都不起作用。

我没有cygwin,所以无法测试。但是试试下面的方法

cmd /c start cmd /c "executableFileName -f -n 100 >logFilePath.txt"
/c
后面的命令周围的引号不是必需的,因此在第一个
cmd/c
中不需要它们。它们在第二个
cmd/c
中很有用,以防止在执行最后一个cmd之前激活重定向


关于您的原始代码-cmd.exe的转义字符是
^
,而不是
\
,并且一旦开始引用,您就无法转义引用。这就是为什么我选择不在最外层的
cmd/c

中包含任何引号的原因,如果在Cygwin中运行
executableFileName-f-n100>logFilePath.txt会发生什么情况,这行行代码
executableFileName-f-n100>logFilePath.txt&
会起作用,但由于Cygwin,会发生一个坏现象。当以本机方式执行时,它不会发生。Bummer,这确实是我一直在努力的方向:(看,使用cygstart可能是一个更简单的解决方案。@fvu谢谢,但它需要在
cmd
中运行才能工作!我不明白如何工作,但我想我已经尝试过类似的方法,但它没有工作……无论如何,谢谢!
cmd /c start cmd /c "executableFileName -f -n 100 >logFilePath.txt"