Command line 如何将命令的输出重定向到两个文件

Command line 如何将命令的输出重定向到两个文件,command-line,redirect,Command Line,Redirect,我需要将命令的输出重定向到两个文件,比如file1和file2 file1是一个新文件,file2已经存在,我需要在其中追加输出 我试过了 这并没有产生预期的结果: command > file1 > file2 对于Windows(cmd.exe): 您正在寻找命令 假设您使用的是类似Linux的系统,请尝试 command | tee file1 >> file2 tee将输出流拆分并发送到两个目的地。在Linux中,您可以这样做 命令| tee file1>>f

我需要将命令的输出重定向到两个文件,比如file1和file2 file1是一个新文件,file2已经存在,我需要在其中追加输出 我试过了

这并没有产生预期的结果:

command > file1 > file2
对于Windows(cmd.exe):

您正在寻找命令


假设您使用的是类似Linux的系统,请尝试

command | tee file1 >> file2

tee
将输出流拆分并发送到两个目的地。

在Linux中,您可以这样做


命令| tee file1>>file2

在PowerShell中使用
tee对象(或其
tee
别名)


也可以T形到变量(例如,用于进一步处理)。

可以使用以下命令。
命令| tee-a file1 file2

Duplicate:,这两个“dupe”都是专门针对Linux/bash的。这个问题更有用一些,因为它与操作系统无关。将所有的解决方案放在一个答案中进行比较特别好,很高兴它没有被当作dupe关闭,也没有mod因为过于笼统或诸如此类的废话而将其切分。除非“command”很快完成,“type”部分在之后才会被执行(在这一点上,最好是一个副本)。您可以尝试在另一个窗口中以某种形式的“开始”运行“命令”,但第二部分将失败,因为windows批处理文件没有“尾部”等效项。为了完成这项工作,你最好只使用powershell——或者新的windows bash子系统——或者安装git并使用它的bash——或者从某处下载tee.cmd(我在80年代曾经有一个tee.cmd for dos的副本)。你是对的,它可能是复制的,这总体上不是最优的——但是缺少
tee
cmd.exe是不可能的
tee
位于GNU实用程序的Windows端口中,就像git for Windows或Chef随附的端口一样,因此获得它并非不可能。答案的意图是在cmd.exe中编写一些模拟这种行为的东西。其他人编写了Powershell变体。
$ echo existing >file2
$ date | tee file1 >> file2
$ cat file2
existing
Mon Mar  9 10:40:01 CET 2009
$ cat file1
Mon Mar  9 10:40:01 CET 2009
$
command | tee file1 >> file2
command | tee first-file | out-file second-file