Comment puis-je faire en sorte que Powershell exécute un fichier batch puis reste ouvert ?

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

  •  08-06-2019
  •  | 
  •  

Question

Par exemple;avec l'ancienne invite de commande, ce serait :

cmd.exe /k mybatchfile.bat
Était-ce utile?

La solution

Accédez à une instance cmd (ou même à PowerShell lui-même) et tapez ceci :

powershell -?

Vous verrez que powershell.exe a un paramètre "-noexit" qui lui indique de ne pas quitter après l'exécution d'une "commande de démarrage".

Autres conseils

Lors de l'exécution de PowerShell.exe, fournissez simplement le -Sans issue changez comme ceci :

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

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

Ou si vous souhaitez exécuter un fichier, puis exécuter une commande et laisser la fenêtre rester ouverte, vous pouvez faire quelque chose comme ceci :

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

Le -Commande Le paramètre est implicite s’il n’est pas fourni, et nous utilisons ici le & pour appeler le script PowerShell, et le ; sépare les commandes PowerShell.

Aussi, au bas de mon article de blog Je montre une modification rapide du registre que vous pouvez effectuer afin que PowerShell reste toujours ouvert après l'exécution d'un script/d'une commande, de sorte que vous n'ayez pas besoin de toujours fournir explicitement le commutateur -NoExit à tout moment.

Je suis sûr que vous l'avez déjà compris mais je viens de le poster

$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"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top