我有一个返回值的命令行程序。比如这个简单的批处理文件。
echo "Hello World"
在正常的情况下,我可以把输出管到这样的文件中。
$ my_batch.bat > file.log
如果我想在一个新的控制台中用一个特定的标题来启动这个程序,问题就会出现。
$ start "NewConsole" cmd.exe /c my_batch.bat > file.log
在这种情况下,我的批处理似乎运行了,但我的file.log是空的。
就像@Compo和@aschipfl说的那样。>
现在你的脚本中是将整个的 start
命令(这什么都不是),然后把你当前的脚本用管道传输。然而,如果你或者 1. >
与 ^
జజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజజ >
将会传递到下一个命令提示符,或者如果你将 "
围绕着启动命令的部分,把要做的事情传递给下一个命令提示符,这样它就会传递你想传递的东西,包括你想传递的 >
管。
start "NewConsole" cmd.exe /c my_batch.bat ^> file.log
或者用这个
start "NewConsole" cmd.exe /c "my_batch.bat > file.log"