Batch-Dateien: Lassen Sie das Befehlsfenster geöffnet, wenn es über Windows gestartet wird, andernfalls nicht

0

Wenn ich eine Batch-Datei unter Windows (Start-> Ausführen, "mybatch.bat") ausführe, wird ein Fenster geöffnet, ausgeführt und dann geschlossen. Ich möchte, dass es bei dieser Verwendung bleibt.

Wenn Sie jedoch dieselbe Batch-Datei von einem vorhandenen Terminal ausführen, möchte ich, dass das aktuelle Terminal verwendet wird, anstatt ein anderes zu öffnen.

Ist das möglich?

Eddie Parker
quelle
Rufen Sie den übergeordneten Prozess ab und prüfen Sie, ob es sich um Explorer oder Cmd handelt. Siehe Wie kann ich den übergeordneten Prozess einer cmd.exe ermitteln
?

Antworten:

0

Das sollte das normale Verhalten sein. Diese Charge:

:: Q:\Test\2017\07\19\WhoStartedMe.cmd
@Echo off
Echo %cmdcmdline%
pause

zeigt mit welcher cmd-Zeile der Batch gestartet wurde und wartet auf einen beliebigen Schlüssel
Started win Win+R

C:\WINDOWS\system32\cmd.exe /c ""Q:\Test\2017\07\19\WhoStartedMe.cmd" "
Press any key to continue . . .

Ausgehend von einem geöffneten Cmd-Fenster:

> WhoStartedMe.cmd
"C:\WINDOWS\system32\cmd.exe"
Press any key to continue . . .

Ausgehend von einem geöffneten Powershell-Fenster:

PS> .\WhoStartedMe.cmd
C:\WINDOWS\system32\cmd.exe /c ""Q:\Test\2017\07\19\WhoStartedMe.cmd""
Press any key to continue . . .
LotPings
quelle