Wie kann ich eine Windows-Befehlszeile im Hintergrund ausführen, ohne mit dem aktiven Benutzer zu interagieren?
windows
command-line
Mohammad AL-Rawabdeh
quelle
quelle
Antworten:
Ihre Frage ist ziemlich vage, aber es gibt einen Beitrag auf ServerFault, der möglicherweise die benötigten Informationen enthält. Die Antwort dort beschreibt, wie ein verstecktes Batch-Dateifenster ausgeführt wird:
quelle
Das ist ein bisschen spät, aber ich bin gerade auf diese Frage gestoßen, als ich selbst nach der Antwort gesucht habe, und habe Folgendes gefunden:
Dies ist unter Windows der Befehl, der dem Linux-Befehl am nächsten kommt:
Über das Konsolen-Hilfesystem:
Ein Problem, das ich dabei gesehen habe, ist, dass Sie mehr als ein Programm im Konsolenfenster haben, es wird etwas verwirrend und durcheinander.
Damit es nicht mit dem Benutzer interagiert, können Sie die Ausgabe in eine Datei umleiten:
quelle
start /B "" program
Ich vermute, Sie meinen: Führen Sie etwas im Hintergrund aus und rufen Sie die Befehlszeile sofort wieder auf, während das gestartete Programm fortgesetzt wird.
Welches ist das Unix-Äquivalent von
quelle
start
? Es funktioniert nicht ohne es (führt nur eine neue Befehlsinstanz aus), aberstart
die Hilfe sagt nichts darüber aus, es besagt, dass alle Parameter optional sind (oder ich verstehe es nicht).start
funktioniert für mich ohne den leeren Parameter, aber wenn ich den leeren Parameter verwende, bekomme ich anscheinend eine Shell mit einer separaten Konfiguration, da eine Einstellung, die ich vorgenommen habe, als ich den leeren Parameter nicht hatte, nicht verwendet wird, wenn ich sie verwende der leere Parameter. Ich frage mich, warum sie separate Konfigurationen verwenden?START "" program
startet einen Befehl in einem neuen Terminal für mich, währendprogram &
in Unix der Befehl ausgeführt wird und die Ausgabe auf dem gleichen Terminal gedruckt wird.Das obige ist dem Unix-Gegenstück ziemlich nahe
program &
quelle
Sie können dieses (kommentierte!) PowerShell-Skript verwenden:
Speichern Sie es als
.ps1
Datei. Nachdem Sie die Skriptausführung aktiviert haben (siehe Aktivieren von Skripten im PowerShell-Tag-Wiki ), können Sie eine oder zwei Zeichenfolgen übergeben: den Namen der ausführbaren Datei und optional die Argumentzeile. Zum Beispiel:Ich bestätige, dass dies unter Windows 10 funktioniert.
quelle
So geht mein PHP-interner Server in den Hintergrund. Also sollte es technisch für alle funktionieren.
Vielen Dank
quelle
Wenn Sie möchten, dass das Befehlszeilenprogramm ausgeführt wird, ohne dass der Benutzer etwas davon weiß, definieren Sie es als Windows-Dienst und es wird nach einem Zeitplan ausgeführt.
quelle
schtasks
Befehl in Windows XP und höher verwenden (Warnung:schtasks
ist kompliziert).Eine verwandte Antwort mit 2 Beispielen:
quelle
call Start /MIN "c" "calc.exe"
SW_*
umCreateProcessW
überSTARTUPINFO::wShowWindow
(einschließlichSW_HIDE
).Den richtigen Weg dazu finden Sie unter folgendem Link:
Ausführen einer geplanten Aufgabe, ohne dass ein Befehlsfenster angezeigt wird
Zusammenfassend müssen Sie das Kontrollkästchen "Ausführen, ob Benutzer angemeldet ist oder nicht" aktivieren. Task-Benutzeranmeldeinformationen müssen nach dem Klicken auf "OK" eingegeben werden.
quelle
bin gerade auf diesen Thread gestoßen, in dem Windows 7 mit Power Shell ausführbare Dateien im Hintergrund ausführt, genau wie Unix-Dateiname &
Beispiel: Start -NoNewWindow Dateiname
hilf mit anzufangen
NAME Start-Prozess
SYNTAX-Startprozess [-FilePath] [[-ArgumentList]] [-Credential] [-WorkingDirectory] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError] [-RedirectStandardInput] [-RedirectStandardInput] [-WindowStyle {Normal | Versteckte | Minimiert | Maximiert}] [-UseNewEnvironment] []
Aliase saps beginnen
quelle