【问题标题】:cmd /q not working as expectedcmd /q 没有按预期工作
【发布时间】:2012-04-19 03:21:48
【问题描述】:

我想启动一个命令提示符,但不希望它有任何输出。所以我将它作为 -

cmd /q dir

工作正常,但一个 cmd.exe 不退出。如果我用这个-

cmd /q /c  dir

我可以看到我不希望看到的 dir 命令的输出

【问题讨论】:

  • 你到底想做什么? cmd /q /c rem 根本没有输出,但这将是一个空操作。如果您不想运行它,为什么还要打电话给dir/Q 只是具有echo off 的效果。不多也不少。它不会抑制所有输出。
  • 我正在调用其他代码,使用 dir 作为示例。如果我用 mycode.exe 替换 dir,我不想看到 mycode.exe 的任何输出
  • 你能给出你实际尝试过的代码吗?
  • 为什么要使用 CMD 运行二进制可执行文件?
  • 因为我是通过 psexec 远程运行的

标签: windows command-line-arguments command-prompt cmd


【解决方案1】:

/Q 选项不会禁用输出,它只会关闭 ECHO。通常不需要它,但在某些情况下它会变得有用。

要禁用所有非错误输出,只需将标准输出重定向到 nul(>nul1>nul)。如果您还想禁用错误输出,则还必须重定向 stderr (2>nul)。

>nul 2>nul cmd /c dir

附录

Andriy M 对这个问题的评论很有道理。您可能无需通过 CMD 直接执行您的命令。重定向仍然可以正常工作。

>nul 2>nul yourCommand.exe

【讨论】:

  • @user837208:在您的具体情况下,您应该在远程系统上进行重定向,这样输出就不会通过网络发送:psexec \\target cmd /c ">nul 2>nul yourCommand.exe"
猜你喜欢
  • 2013-07-01
  • 1970-01-01
  • 2015-08-30
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 2020-03-18
  • 2012-06-14
  • 2014-11-15
相关资源
最近更新 更多