如何使用批处理运行命令并将输出保存在文本文件中?

时间:2015-08-28 08:12:04

标签: batch-file cmd

我正在运行一些命令并获取输出。现在我想让它自动化。我创建了.bat文件,但我无法保存输出。

如何在批处理文件中成功运行命令后保存输出。

3 个答案:

答案 0 :(得分:2)

两种选择:

  1. 在调用它们时直接重定向(“>”).bat文件中的命令
  2. 实施例

    echo %DATE% %TIME% > mylog.txt
    cmd1 >> mylog.txt
    cmd2 >> mylog.txt
    ...
    
    1. 创建第二个.bat文件以调用第一个,并重定向第一个中的所有内容:
    2. 实施例

      call mybatfile.bat > mylog.txt
      
      1. 附注:

        一个。 “文本输出”实际上由两个独立的“流”组成:stdout(普通文本)和stderr(错误文本)。如果要将两者重定向到同一日志文件,可以使用以下语法:

        call mybatfile.bat > mylog.txt 2>&1

        ">"在写入之前删除先前的内容。 ">>"将新输出附加到文件的先前内容。

答案 1 :(得分:1)

只需添加">文件名"在您调用脚本的命令之后,输出将被写入此文件(" filename")。

有关详细信息,请参阅https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true(附加,......)。

答案 2 :(得分:0)

使用来自@ paulsm4:

的答案中的代码

此方法比在每行末尾添加空格更好,因为没有额外和不需要的字符。

 > mylog.txt echo %DATE% %TIME%
>> mylog.txt cmd1
>> mylog.txt cmd2

在这种方法中使用空格的原因是因为在没有空格时会吃掉一些数字。

echo %DATE% %TIME% > mylog.txt
cmd1 >> mylog.txt
cmd2 >> mylog.txt