Windows .cmd 标准输出 - 多重重定向

2024-01-08

给定一个 windows .cmd 文件abc.cmd

abc.cmd > output.log

上述命令行操作会将执行的输出保存到output.log 文件中。

是否有选项可以运行此命令以创建此日志的多个副本。也就是说,我希望在一个位置创建一个副本,在另一个位置创建另一个副本。

请不要要求我运行复制命令。我正在寻找命令行“选项”。


unix tee 命令的任何 Windows 实现都可以完美运行。那里有免费的选择。我喜欢用适用于 Windows 的 GNU 实用程序 http://gnuwin32.sourceforge.net/packages/coreutils.htm,其中包括 tee.exe。

用法很简单:

abc.cmd | tee out1.txt >out2.txt

或者,您可以使用 Windows 脚本主机 (WSH) 编写自己的 tee 实现 - 无需下载 exe!triggeradeadcat 试图这样做 https://stackoverflow.com/a/26558787/1012053,但该实现是有缺陷的,因为它使用基于行的输入/输出而不是基于字符的。如果命令在同一行上有交互式提示和响应,则效果不佳。

下面是我在许多项目中使用过的一个方便的 JScript 实现。我使用混合 JScript/批处理技术,以便可以直接调用该实用程序,而无需指定 CSCRIPT。

@if (@X)==(@Y) @end /* Harmless hybrid line that begins a JScript comment

::--- Batch section within JScript comment that calls the internal JScript ----
@echo off
cscript //E:JScript //nologo "%~f0" %*
exit /b

----- End of JScript comment, beginning of normal JScript  ------------------*/
var fso = new ActiveXObject("Scripting.FileSystemObject");
var mode=2;
if (WScript.Arguments.Count()==2) {mode=8;}
var out = fso.OpenTextFile(WScript.Arguments(0),mode,true);
var chr;
while( !WScript.StdIn.AtEndOfStream ) {
  chr=WScript.StdIn.Read(1);
  WScript.StdOut.Write(chr);
  out.Write(chr);
}

同样,用法很简单:

abc.cmd | tee out1.txt >out2.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows .cmd 标准输出 - 多重重定向 的相关文章

随机推荐

  • 如何完全卸载使用easy_install安装的pip?

    在 Windows 7 上 我使用 easy install 安装 pip 并且想要安装较低版本的 pip 我想删除旧版本 但不知道如何完全删除 easy install 安装的 pip 或者如果有一种方法可以在不通过 easy insta
  • 如何使用 Web API Get 方法返回图像

    我需要使用 Web API Get 方法返回图像 下面的代码似乎工作正常 除了我在 Fiddler 的 ImageView 窗口中收到此消息 此响应已编码 但不声称是图像 public HttpResponseMessage Get usi
  • Nginx“ssl_stapling”被忽略,在 OCSP 响应程序“ocsp.comodoca.com”中找不到主机

    我正在尝试在 Nginx 上设置 OCSP 装订 我收到错误 ssl stapling ignored host not found in OCSP responder ocsp comodoca com 这是文件 conf server
  • 如何在 JavaScript 中从 URL 获取 JSON?

    返回 JSON query count 1 created 2015 12 09T17 12 09Z lang en US diagnostics 我尝试了这个 但没有成功 responseObj readJsonFromUrl http
  • ViewModel 无法在 Activity 中实例化

    我正在尝试实例化一个 ViewModel 以在我的所有 Activity 中使用 public class LaunchActivity extends Activity private Controller control Overrid
  • Visual Studio 2017 Team Services:可以登录github帐户,但无法推送更改

    我一直在尝试通过 Visual Studio 2017 Team Services 在我的笔记本电脑上设置 github 它让我首先登录 甚至让我将存储库克隆 分叉到本地文件夹中 问题是每次我尝试推回 github 时都会出现以下错误 推送
  • 在 mysql 中使用 group by 仅选择最后一个值

    我有一张表 其中包含有关参加某些活动的数据 我在表中记录了用户每次发送新考勤时的考勤数据 信息如下 mysql gt SELECT id branch channel id member attendance timestamp id me
  • 如何从闪亮的 ggplotly 中获取数据行

    代码如下 我正在尝试使用plotly click事件来确定正在选择哪些数据 但是 我不知道该怎么做 plotly click 提供的数据非常少 根本不包括分组 我没有任何JS经验 但我知道一定有办法 我的目标是能够选择一个数据点并能够抓取它
  • 如何将 Scripting.FileSystemObject 标记为脚本安全?

    介绍 我正在为数控机床编程 确切地说是比雅斯的漫游者 用于编程的软件编辑器支持VBScript VBScript 用于实现条件语句和循环等 在软件说明中 我列出了 VBScript 中标记为不使用的所有语法 以避免复杂化 当然 我想使用 V
  • 在某些静态库中打开整个程序优化会大大增加库的大小!

    在 Visual Studio 2010 中 我有一个 C C 静态库项目 当我打开该选项时整个程序优化 in release模式下 我获得了超过 90 MB 的 lib 文件 当我关闭此选项时 大小会减少到 24 MB 该库包含数百个使用
  • 复制赋值运算符=自赋值检查错误

    如果我有一个类声明为 class Person public Person const int age constructor Person const Person other Person operator const Person o
  • 如何将 Excel 中的值限制在某个范围内?

    在 C 中我会使用boost clamp为了这 基本上我有一些excel函数 A1 B2 C3 D4 我想将其限制为 某个数字 称之为X1 显而易见的方法是这样的 MAX X1 MIN X1 A1 B2 C3 D4 但我希望能够做到这一点
  • Hive-Tez 上的 Map-Reduce 日志

    我想在 Hive Tez 上运行查询后获得 Map Reduce 日志的解释 INFO 后面的几行传达什么 这里我附上了一个样本 INFO Session is already open INFO Dag name SELECT a Mod
  • 使用 TPL 时如何在 UI 线程上调用方法?

    我正在开发一个 MVVM 应用程序 它使用 TPL 在后台执行多项任务 任务需要向 UI 报告进度 以便可以更新进度对话框 由于应用程序是 MVVM 因此进度对话框绑定到名为 Progress 的视图模型属性 该属性由具有签名的视图模型方法
  • JavaFX 拖放到 GridPane?

    我已经为我的游戏实现了拖放功能 但到目前为止我只能 拖放到 硬编码的位置 如图所示 我想要的是 当船舶被放下时 它的 x y 值 相对于 GridPane 被保存 或者 飞船掉落到的单元格被保存 我的 setOnDragDropped 事件
  • Jenkins gerrit 触发器在构建时未获取我的更改

    我已经使用 gerrit 触发器插件配置了 jenkins 以验证我们推送到 gerrit 的每个提交 我希望这个触发器包含我对原始存储库的最新更改并进行构建 但是 它仅克隆回购项目并进行编译 而无需我进行更改 以下是我在詹金斯中对 ger
  • 如何运行快照插件

    当我尝试使用以下命令运行下面的 Maven 插件时 com wordpress pomfromjarmavenplugin generate 0 0 1 SNAPSHOT generatepom 我收到此错误 下载中 https oss s
  • 如果数字以 1 结尾做某事

    我想做这样的事情 if day 1 day 11 day 21 day 31 day 41 result dan else result dana 我怎样才能对每个以 1 结尾的数字做到这一点 当然又不写出所有数字 只需检查除以 10 的余
  • 始终使用 Serilog 记录上下文数据

    我正在使用 Serilog 进行日志记录 对于每个日志 我想记录上下文信息 例如用户名和其他一些上下文信息 所以我用静态方法创建了包装器 如下所示 public static class MyLogger public static voi
  • Windows .cmd 标准输出 - 多重重定向

    给定一个 windows cmd 文件abc cmd abc cmd gt output log 上述命令行操作会将执行的输出保存到output log 文件中 是否有选项可以运行此命令以创建此日志的多个副本 也就是说 我希望在一个位置创建