Например; со старой командной строкой это будет:
cmd.exe /k mybatchfile.bat
Зайдите в экземпляр cmd (или даже в сам PowerShell) и введите:
powershell -?
Вы увидите, что powershell.exe имеет параметр «-noexit», который запрещает выход после выполнения «команды запуска».
Я уверен, что вы уже поняли это, но я просто опубликовать это
$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"
При запуске PowerShell.exe просто укажите ключ -NoExit следующим образом:
PowerShell -NoExit -File "C:\SomeFolder\SomePowerShellScript.ps1"
PowerShell -NoExit -Command "Write-Host 'This window will stay open.'"
Или, если вы хотите запустить файл, а затем запустить команду и оставить окно открытым, вы можете сделать что-то вроде этого:
PowerShell -NoExit "& 'C:\SomeFolder\SomePowerShellScript.ps1'; Write-Host 'This window will stay open.'"
Параметр -Command подразумевается, если не указан , и здесь мы используем & для вызова скрипта PowerShell, а ; отделяет команды PowerShell.
Кроме того, в нижней части моего блога я показываю быстрое изменение реестра, которое вы можете внести, чтобы PowerShell всегда оставался открытым после выполнения скрипта / команды, чтобы вам не нужно было явно указывать ключ -NoExit для всех время.