Вопрос:
Я знаю, что для PowerShell есть этот маленький переключатель -noexit.
В любом случае, оставайтесь в оболочке без использования этого переключателя?
Другими словами, я хочу, чтобы команда script, которая выполняется, затем оставляет оболочку открытой.
Лучший ответ:
Этот script не будет завершен, если вы запустите его без аргументов, например. дважды щелкнув по нему:
param($Work) # restart PowerShell with -noexit, the same script, and 1 if (!$Work) { powershell -noexit -file $MyInvocation.MyCommand.Path 1 return } # now the script does something # this script just outputs this: ‘I am not exiting’ Ответ №1
В основном у вас есть 3 варианта предотвращения закрытия окна консоли PowerShell, что я более подробно описываю
Пер- script Исправление: Добавьте приглашение для ввода в конец вашего файла script. например Read-Host -Prompt «Press Enter to exit»
Глобальное исправление: Измените свой раздел реестра, чтобы он всегда закрывал окно консоли PowerShell после завершения script.
См. мой блог для получения дополнительной информации о том, какие ключи реестра необходимо изменить.
Похоже, вы ищете вариант # 1 или # 3.
Ответ №2
Вы пробовали
$host.enternestedprompt()
Это остановит выполнение и отбросит их во вложенное приглашение. Когда они выйдут из этого приглашения, закончится script, и окно закроется.
Ответ №3″do stuff» Pause
Да, точно так же, как commandline – output:
do stuff Press Enter to continue…: Ответ №4
Цикл while в конце этого тривиального script предлагает мне команду и выполняет ее. Он работает со средой script, поэтому можно проверить значения переменных. Ввод “exit” завершает цикл, когда он выполняется.
# Do something. cd D:temp $current_directory = $(pwd) dir write-host # Just add a little space after the dir # Stay in the shell and execute commands. while ($TRUE) { $cmd = Read-Host «PS $(pwd)» if ($cmd[0] -eq ‘»‘) { iex «& $cmd» } else { iex $cmd } }
Я уверен, что другие смогут поделиться некоторыми уточнениями, но это начало. С наилучшими пожеланиями.
Ответ №5
Мне не известно о команде, которую вы могли бы запустить в script, которая предотвратила бы выход из оболочки, если бы она не была вызвана с помощью команды -noexit.
Обычно я использую Read-Host «Press ENTER to continue» в конце, если я не хочу, чтобы оболочка закрывалась. Однако это не помешает закрытию оболочки после нажатия кнопки ввода, если она не была запущена с помощью -noexit.
Ответ №6
Как это?
PowerShell -File c:myscript.ps1 -NoExit Ответ №7
Не возрождать 6-летнюю нить или что-то еще, но следует заметить, что кто-то читает, что вы можете закончить свой скрипт
Stop-Process -processname regedit
если вы включили настройку реестра (глобальное исправление) и действительно хотите запустить автоматически закрывающий скрипт.