2012-04-05 191 views
0

我想启动命令提示符,但不希望从它输出任何结果。所以我开始 -cmd/q不按预期方式工作

cmd /q dir 

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

cmd /q /c dir 

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

+0

你想做什么? 'cmd/q/c rem'将根本没有输出,但它将是无操作的。如果你不想运行它,你甚至为什么要调用'dir'? '/ Q'只是'echo off'的效果。没有更多,没有更多。它不会抑制所有输出。 – Joey 2012-04-05 11:30:56

+0

我正在调用一些其他代码,只是将dir作为示例。如果我用mycode.exe替换dir,我不想看到mycode.exe – user837208 2012-04-05 11:33:32

+0

的任何输出,你可以给你实际尝试的代码吗? – PresleyDias 2012-04-05 11:35:50

回答

5

/Q选项不会禁用输出,它只是变成ECHO OFF。这通常不是必需的,但有时它会变得有用。

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

>nul 2>nul cmd /c dir 

附录

舍甫琴科M有与他的问题置评的好点。您可以直接执行您的命令,而无需通过CMD。重定向仍然可以工作。

>nul 2>nul yourCommand.exe 
+2

@ user837208:在特定情况下,应该在远程系统上执行重定向,以便不通过网络发送输出:psexec \\ target cmd/c“> nul 2> nul yourCommand.exe” – 2012-04-06 05:24:38