给定一个 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(使用前将#替换为@)