Come faccio a fare in Powershell per eseguire un file batch e poi rimanere aperto?

StackOverflow https://stackoverflow.com/questions/14300

  •  08-06-2019
  •  | 
  •  

Domanda

Per esempio;con il vecchio prompt dei comandi sarebbe:

cmd.exe /k mybatchfile.bat
È stato utile?

Soluzione

Rilascia in un'istanza cmd (o addirittura PowerShell stesso) e digita questo:

powershell -?

Vedrai che powershell.exe ha un " -noexit " parametro che indica di non uscire dopo aver eseguito un comando di avvio " ;.

Altri suggerimenti

Quando si esegue PowerShell.exe, è sufficiente fornire l'opzione -NoExit in questo modo:

PowerShell -NoExit -File "C:\SomeFolder\SomePowerShellScript.ps1"

PowerShell -NoExit -Command "Write-Host 'This window will stay open.'"

O se vuoi eseguire un file e quindi eseguire un comando e mantenere la finestra aperta, puoi fare qualcosa del genere:

PowerShell -NoExit "& 'C:\SomeFolder\SomePowerShellScript.ps1'; Write-Host 'This window will stay open.'"

Il parametro -Command è implicito se non fornito, e qui utilizziamo & amp; per chiamare lo script PowerShell e ; separa i comandi di PowerShell.

Inoltre, alla fine di il mio post sul blog mostro una rapida modifica del registro che puoi fare per avere sempre PowerShell aperto dopo aver eseguito uno script / comando, in modo che non sia necessario fornire sempre esplicitamente -NoExit passare sempre.

Sono sicuro che lo hai già capito, ma l'ho appena pubblicato

$CreateDate = (Get-Date -format 'yyyy-MM-dd hh-mm-ss')

$RemoteServerName ="server name"
$process = [WMICLASS]"\\$RemoteServerName\ROOT\CIMV2:win32_process"  
$result = $process.Create("C:\path to a script\test.bat") 
$result | out-file -file "C:\some path \Log-$CreatedDate.txt"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top