2012-04-05 5 views
0

Ich möchte eine Eingabeaufforderung starten, aber keine Ausgabe von ihm. Also ich beginne es als -cmd/q funktioniert nicht wie erwartet

cmd /q dir 

was gut funktioniert, aber eine cmd.exe nicht beendet. Wenn ich this-

cmd /q /c dir 

verwende ich Ausgabe von Befehl dir sehen kann, die ich nicht erwarten,

+0

Was zum Teufel versuchen Sie zu tun? 'cmd/q/c rem 'würde überhaupt keine Ausgabe haben, aber es wäre ein No-Op. Warum rufst du sogar 'dir' an, wenn du es nicht ausführen willst? '/ Q' hat nur den Effekt von' echo off'. Nicht mehr, nicht weniger. Es unterdrückt nicht alle Ausgaben. – Joey

+0

Ich rufe einen anderen Code, nur mit dir als Beispiel. Wenn ich Verzeichnis mit mycode.exe ersetze, will ich keine Ausgabe von mycode.exe sehen – user837208

+0

können Sie den Code geben, den Sie tatsächlich versuchten? – PresleyDias

Antwort

5

Der/Q-Option zu sehen, keine Ausgabe deaktivieren, es stellt sich nur ECHO OFF. Es wird normalerweise nicht benötigt, aber es gibt Gelegenheiten, wo es nützlich wird.

Um alle nicht fehlerbehafteten Ausgaben zu deaktivieren, leiten Sie einfach den stdout auf Null um (>nul oder 1>nul). Wenn auch die Fehlerausgabe deaktiviert werden soll, muss stderr ebenfalls umgeleitet werden (2>nul).

>nul 2>nul cmd /c dir 

Nachtrag

Andriy M hat einen guten Punkt mit seinem Kommentar auf die Frage. Sie können Ihren Befehl wahrscheinlich direkt ausführen, ohne CMD auszuführen. Die Weiterleitung funktioniert immer noch gleich.

>nul 2>nul yourCommand.exe 
+2

@ user837208: In Ihrem speziellen Fall sollten Sie die Umleitung auf dem Remote-System vornehmen, damit die Ausgabe nicht über das Netzwerk gesendet wird: psexec \\ target cmd/c "> nul 2> nul yourCommand.exe" –