Wie kann ich eine Windows-Befehlszeile im Hintergrund ausführen?

Wie kann ich eine Windows-Befehlszeile im Hintergrund ausführen, ohne mit dem aktiven Benutzer zu interagieren?

Author: slhck, 2010-10-12

10 answers

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 Batch-Dateifenster versteckt ausgeführt wird:

Sie können es stattdessen lautlos mit einer Windows-Skriptdatei ausführen. familiengeführte Methode ermöglicht das Ausführen eines Skripts im unsichtbaren Modus. Erstellen Sie ein .vbs - Datei wie diese

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing

Und planen Sie es. Das zweite Argument in diesem Beispiel legt das Fenster fest Stil. 0 bedeutet " hide the Fenster."

 44
Author: nhinkle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-08-09 05:40:12

Dies ist etwas spät, aber ich bin gerade auf diese Frage gestoßen, als ich selbst nach der Antwort gesucht habe, und ich habe Folgendes gefunden:

START /B program

Was unter Windows dem Linux-Befehl am nächsten kommt:

program &

Aus dem Konsolenhilfesystem:

C:\>HELP START

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [command/program] [parameters]

    "title"     Title to display in window title bar.
    path        Starting directory.
    B           Start application without creating a new window. The
                application has ^C handling ignored. Unless the application
                enables ^C processing, ^Break is the only way to interrupt
                the application.

Ein Problem, das ich damit gesehen habe, ist, dass Sie mehr als ein Programm haben, das in das Konsolenfenster schreibt, es wird ein wenig verwirrend und durcheinander.

Damit es nicht mit dem Benutzer interagiert, können Sie die Ausgabe auf a umleiten file:

START /B program > somefile.txt
 299
Author: Novicaine,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-05-03 14:28:39

Ich vermute, Sie meinen: Führen Sie etwas im Hintergrund aus und rufen Sie die Befehlszeile sofort zurück, wenn das gestartete Programm fortgesetzt wird.

START "" program

Das ist das Unix-Äquivalent von

program &
 79
Author: Paul Douglas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-09-30 19:00:21
START /MIN program 

Das obige ist ziemlich näher an seinem Unix-Gegenstück program &

 16
Author: Siva Sankaran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-09-13 06:55:32

Sie können diese (kommentierte!) PowerShell-Skript:

# Create the .NET objects
$psi = New-Object System.Diagnostics.ProcessStartInfo
$newproc = New-Object System.Diagnostics.Process
# Basic stuff, process name and arguments
$psi.FileName = $args[0]
$psi.Arguments = $args[1]
# Hide any window it might try to create
$psi.CreateNoWindow = $true
$psi.WindowStyle = 'Hidden'
# Set up and start the process
$newproc.StartInfo = $psi
$newproc.Start()
# Return the process object to the caller
$newproc

Speichern Sie es als .ps1 - Datei. Nach dem Aktivieren der Skriptausführung (siehe Skripte in aktivieren des PowerShell-Tags in aktivieren) können Sie ihm eine oder zwei Zeichenfolgen übergeben: den Namen der ausführbaren Datei und optional die Argumentzeile. Beispiel:

.\hideproc.ps1 'sc' 'stop SomeService'

Ich bestätige, dass dies unter Windows 10 funktioniert.

 9
Author: Ben N,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-08-09 05:40:36

So tritt mein interner PHP-Server in den Hintergrund. Technisch sollte es also für alle funktionieren.

start /B "" php -S 0.0.0.0:8000 &

Danke

 4
Author: Suyash Jain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-07-09 04:30:36

Eine verwandte Antwort mit 2 Beispielen:

  1. Unten öffnet calc.exe:

Rufen Sie START /B "mein calc" "calc.exe"

  1. Manchmal ist Vordergrund nicht erwünscht, dann laufen Sie minimiert wie folgt:

Rufen Sie start /min "n" "notepad auf.exe"

Anrufen, START /MIN "mein mongod" "%ProgramFiles%\MongoDB\Server\3.4\bin\mongod.exe"

Hoffe das hilft.

 2
Author: Manohar Reddy Poreddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-12 13:48:39

Wenn Sie möchten, dass das Befehlszeilenprogramm ausgeführt wird, ohne dass der Benutzer davon weiß, definieren Sie es als Windows-Dienst und es wird nach einem Zeitplan ausgeführt.

 1
Author: CarlF,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-09-30 14:00:42

Sie können den richtigen Weg sehen, dies in diesem Link zu tun:

So führen Sie eine geplante Aufgabe aus, ohne dass ein Befehlsfenster angezeigt wird

Zusammenfassend müssen Sie das Kontrollkästchen für "Ausführen, ob der Benutzer angemeldet ist oder nicht" aktivieren. Task Benutzeranmeldeinformationen sollten nach dem Drücken von 'Ok'eingegeben werden.

 0
Author: Daniel Alonso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-09-03 14:10:25

Bin gerade auf diesen Thread gestoßen windows 7 führt unter Verwendung der Power Shell ausführbare Dateien im Hintergrund aus, genau wie unix filename &

Beispiel: start -NoNewWindow mit dem Namen

Hilfe starten

- NAME Start-Prozess

- SYNTAX Start-Process [-FilePath] [[-ArgumentList] ] [-Credential ] [-WorkingDirectory ] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectStandardError ] [-RedirectStandardInput ] [- RedirectStandardOutput] [- Warten] [- WindowStyle {Normal / Versteckt | Minimiert | Maximiert}] [-UseNewEnvironment] []

Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-WorkingDirectory <string>] [-PassThru] [-Verb
<string>] [-Wait] [-WindowStyle <ProcessWindowStyle> {Normal | Hidden | Minimized | Maximized}]
[<CommonParameters>]

ALIASE SAPS start -

 -2
Author: jerry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-07-13 23:29:17