Comment puis-je faire en sorte que Powershell exécute un fichier batch puis reste ouvert ?
-
08-06-2019 - |
Question
Par exemple;avec l'ancienne invite de commande, ce serait :
cmd.exe /k mybatchfile.bat
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"