batch-file - 在新的 cmd 中运行命令并将返回结果保存到文件中
问题描述
我有一个返回值的命令行程序。例如这个简单的批处理文件:
echo "Hello World"
在正常情况下,我可以将输出通过管道传输到如下文件:
$ my_batch.bat > file.log
如果我想在具有特定标题的新控制台中启动此问题,则会出现问题:
$ start "NewConsole" cmd.exe /c my_batch.bat > file.log
在这种情况下,我的批处理似乎正在运行,但我的 file.log 将为空。
解决方案
就像@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"
推荐阅读
- node.js - MongoDB - 为多对多关系构建和查询模型和模式
- javascript - 在 ReactJS 中为两个不同的 API 函数转到上一个状态或重新渲染组件
- c# - 同时使用 ImageBrush 和 SolidColorBrush 填充 XAML 形状
- php - 尝试在 header.php 中使用样式表的绝对路径 - 不工作
- javascript - 加载外部页面,在浏览器中更新 URL 并在浏览器刷新时保留页面
- javascript - 如何使用数据库中的数据使我的 chart.js 动态化
- elasticsearch - Elasticsearch 查询聚合
- java - 哪些异常会传播到 Kafka API 中的客户端应用程序代码
- angular - Angular 7-错误错误:未捕获(承诺中):TypeError:无法读取未定义的属性“地图”
- c - 如何“递归”定义链表节点?