首页 > 解决方案 > 在新的 cmd 中运行命令并将返回结果保存到文件中

问题描述

我有一个返回值的命令行程序。例如这个简单的批处理文件:

echo "Hello World"

在正常情况下,我可以将输出通过管道传输到如下文件:

$ my_batch.bat > file.log

如果我想在具有特定标题的新控制台中启动此问题,则会出现问题:

$ start "NewConsole" cmd.exe /c my_batch.bat > file.log

在这种情况下,我的批处理似乎正在运行,但我的 file.log 将为空。

标签: batch-filecmd

解决方案


就像@Compo 和@aschipfl 所说的>那样,您的脚本中现在正在管道传输整个start命令的输出(这没什么)并管道传输您当前的脚本。但是,如果您 1. 使用 中断>,则将传递到下一个命令提示符,或者如果您 2. 将start 命令的一部分放在将要执行^的内容传递给下一个命令提示符的部分周围,以便传递您执行的操作想通过包括管道。 >">


总的来说,你可以使用这个:

start "NewConsole" cmd.exe /c my_batch.bat ^> file.log

或这个:

start "NewConsole" cmd.exe /c "my_batch.bat > file.log"

推荐阅读