Batch file Windows.cmd标准输出-多个重定向
给定一个windows.cmd文件abc.cmd 上面的命令行操作将把执行的输出保存到output.log文件中 是否有运行此命令的选项,以便创建此日志的多个副本。也就是说,我希望在一个位置创建一个副本,在另一个位置创建另一个副本Batch file Windows.cmd标准输出-多个重定向,batch-file,command-prompt,io-redirection,Batch File,Command Prompt,Io Redirection,给定一个windows.cmd文件abc.cmd 上面的命令行操作将把执行的输出保存到output.log文件中 是否有运行此命令的选项,以便创建此日志的多个副本。也就是说,我希望在一个位置创建一个副本,在另一个位置创建另一个副本 请不要要求my运行复制命令。我正在从您发布的网站上查找命令行“选项”: 命令>文件A>文件B-将输出重定向到单独的文件 这不是您想要的吗?不,没有其他人已经评论过的命令行选项,但是您可以多次运行该命令,将它们重定向到不同的文件,如下所示 date > D:\Te
请不要要求my运行复制命令。我正在从您发布的网站上查找命令行“选项”: 命令>文件A>文件B-将输出重定向到单独的文件
这不是您想要的吗?不,没有其他人已经评论过的命令行选项,但是您可以多次运行该命令,将它们重定向到不同的文件,如下所示
date > D:\Testing\test.log & date > D:\Testing\test1.log
所以在你的情况下
abc.cmd > output.log & abc.cmd > output1.log
我还没有测试过
dir |cscript tee.vbs filename1.txt > filename2.txt
unix tee命令的任何Windows实现都可以完美地工作。有免费的选择。我喜欢使用,其中包括tee.exe 用法很简单:
abc.cmd | tee out1.txt >out2.txt
abc.cmd | tee out1.txt >out2.txt
或者,您可以使用Windows脚本主机(WSH)编写自己的tee实现—无需下载exe,但这种实现是有缺陷的,因为它使用基于行的输入/输出,而不是基于字符的输入/输出。如果命令在同一行上有交互式提示和响应,则该命令将无法正常工作
下面是我在许多项目中使用过的一个方便的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
abc.cmd | tee out1.txt >out2.txt
copy output.log\path\to\new\location\copy1.log
是一个重定向操作符,不是命令,并且没有任何选项。@admdraw有几个使用重定向的选项,可以在这里找到:。我只是不完全确定多个重定向是否不是其中之一。可能会重复创建副本而不是拆分输出。这永远不会起作用。你最终只会得到fileB
,而不是两份副本。很有趣。这是我以前从未尝试过的,所以您的问题和Rahul的回答对我也很有用。这会将stderror发送到文件B,而不是文件A发送到文件B。您需要找到一个名为Tee的实用程序。这是一个标准的unix命令,有许多windows端口。@triggeradeadcat,是否有一个windows等效于“tee”命令?您能保证每次运行abc.cmd都会得到相同的结果吗?这对我来说似乎是个坏主意。也许这在某些情况下可以使用,但总的来说是没有用的。此外,我认为这与简单地使用COPY复制输出文件没有什么好处。好主意,但不应该使用基于行的IO—它不适用于提示输入的程序。此外,还可以使用混合脚本使调用更容易。看见