【问题标题】:Suppress command line output but still log禁止命令行输出但仍然记录
【发布时间】:2016-02-16 14:34:00
【问题描述】:

我正在尝试在命令提示符中抑制输出(主要是错误),但仍将所有其他输出记录在日志文件中。

在这里我发现在 cmd 行输出中抑制它: Suppress command line output

但是我怎么能做到这一点,同时所有其他输出都将被记录? (以 C:\log.txt 为例)

谢谢

【问题讨论】:

  • somecommand > outputlog.txt 2>errorlog.txt

标签: batch-file


【解决方案1】:

您提供的示例中有>nul2>&1两部分。

>nul 将脚本的输出(stdout)重定向到nul

2>&1 将错误(errout)重定向到默认输出

如果你写command >nul 2>&1,那么errout会被重定向到stdout,stdout会被重定向到nul

如果您只想记录正常输出而不记录错误,请使用此

command >logfile.txt 2>nul

【讨论】:

  • 例如:taskkill /im "test.exe" /f >"c:\log.txt" 2>&1?
  • 谢谢,会试一试并回复你:)
  • 刚刚尝试过这个,但是错误消息现在在日志中 - 我不想在日志中包含这些消息也不在屏幕上(所以没有错误消息,但其他都很好)知道吗?谢谢!
  • 将 2>&1 改为 2>nul
【解决方案2】:

此代码只能将成功操作记录到文件 log.txt

所有错误都被重定向到nul

@echo off
set process=Test.exe,test2.exe,calc.exe,skype.exe
For %%a in (%process%) Do Call :KillMyProcess %%a
pause
Exit /b

:KillMyProcess
Taskkill /IM "%~1" /F >> log.txt 2>nul

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 2021-07-08
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2011-04-13
    • 2020-05-02
    • 2013-05-20
    相关资源
    最近更新 更多