Как мне заставить Powershell запустить пакетный файл, а затем остаться открытым?

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

  •  08-06-2019
  •  | 
  •  

Вопрос

Например;в старой командной строке это было бы:

cmd.exe /k mybatchfile.bat
Это было полезно?

Решение

Перейдите в экземпляр cmd (или даже в саму PowerShell) и введите это:

powershell -?

Вы увидите, что powershell.exe имеет параметр "-noexit", который указывает ему не завершать работу после выполнения "команды запуска".

Другие советы

При запуске PowerShell.exe просто укажите -Нет выхода переключайтесь вот так:

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.'"

Тот Самый -Команда параметр подразумевается, если он не указан, и здесь мы используем & чтобы вызвать сценарий PowerShell, и ; разделяет команды PowerShell.

Кроме того, в нижней части мой пост в блоге Я показываю быстрое изменение реестра, которое вы можете внести, чтобы PowerShell всегда оставался открытым после выполнения скрипта / команды, так что вам не нужно всегда явно указывать параметр -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"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top