Остановить Powershell от выхода

Вопрос:Я знаю, что для PowerShell есть этот маленький переключатель -noexit. В любом случае, оставайтесь в оболочке без использования этого переключателя? Другими словами, я хочу, чтобы команда script, которая выполняется, затем оставляет оболочку открытой. Лучший ответ: Этот script не будет завершен, если вы запустите его без аргументов, например. дважды щелкнув по нему: param($Work) # restart PowerShell

Вопрос:

Я знаю, что для 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

если вы включили настройку реестра (глобальное исправление) и действительно хотите запустить автоматически закрывающий скрипт.

Оцените статью