파워셸 퇴장 중지
그 정도로 적은 것은 알고 있습니다.-noexit
PowerShell로 전환합니다.
그 스위치를 사용하지 않고 껍데기 안에 머물 수 있는 방법이 있습니까?
다시 말해, 실행한 다음 셸을 열어두는 스크립트 명령을 원합니다.
기본적으로 PowerShell Console 창이 닫히지 않도록 하는 3가지 옵션이 있습니다. 블로그 게시물에 자세히 설명해 드립니다.
- 일회성 수정: PowerShell Console에서 스크립트를 실행하거나 -NoExit 스위치를 사용하여 PowerShell 프로세스를 시작합니다.
PowerShell -NoExit "C:\SomeFolder\SomeScript.ps1"
- 스크립트별 수정(Per-script Fix): 스크립트 파일 끝에 입력 프롬프트를 추가합니다.
Read-Host -Prompt "Press Enter to exit"
- Global Fix: 스크립트 실행이 끝나면 항상 PowerShell Console 창이 열려 있도록 레지스트리 키를 변경합니다.
수정할 레지스트리 키에 대한 자세한 내용은 내 블로그를 참조하십시오.
1번이나 3번 옵션을 찾으시는 것 같습니다.
이 스크립트는 인수 없이 실행하는 경우(예: 두 번 클릭) 종료되지 않습니다.
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'
해보셨습니까?
$host.enternestedprompt()
그러면 실행이 중지되고 중첩 프롬프트로 드롭됩니다.해당 프롬프트를 종료하면 스크립트가 종료되고 창이 닫힙니다.
"do stuff"
Pause
예, 명령줄 -- 출력과 마찬가지로:
do stuff
Press Enter to continue...:
나는 당신이 스크립트에서 실행할 수 있는 명령을 알지 못합니다. 만약 셸이 실행되지 않았다면 셸이 빠져나가지 못하게 할 것입니다.-noexit
지휘.
제가 주로 사용하는 것은Read-Host "Press ENTER to continue"
포탄이 닫히지 않으려면요그러나 셸을 시작하지 않은 경우 Enter 키를 누른 후 셸이 닫히지 않습니다.-noexit
.
이 사소한 스크립트 끝에 있는 while loop이 명령을 요구하고 실행합니다.스크립트의 환경과 함께 실행되므로 변수 값 확인이 가능합니다."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 }
}
다른 사람들도 몇 가지 개선점을 공유할 수 있을 것이라고 확신하지만, 이것은 시작입니다.안부 전해요.
이렇게요?
PowerShell -File c:\myscript.ps1 -NoExit
다른 방법은 사용하는 것입니다.$null = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
.
다른 답변과 결합하면 다음과 같은 몇 가지 옵션은 다음과 같습니다.
-
- 명령 프롬프트 실행에서:
PowerShell -NoExit "Path\to\Script\script.ps1"
- 명령 프롬프트 실행에서:
-
- 스크립트 끝에 추가:
pause
- 스크립트 끝에 추가:
-
- 스크립트 끝에 추가:
read-Host -Prompt "Press Enter to exit"
- 스크립트 끝에 추가:
-
- 스크립트 끝에 추가:
$host.enternestedprompt()
- 스크립트 끝에 추가:
-
- 스크립트 끝에 추가:
$null = host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
- 스크립트 끝에 추가:
Powershell -noexit -command {
$a=1
Echo $a
} # End block
# Script ends but PowerShell windows remains.
6살짜리 실타래 같은 것을 되살리는 것이 아니라, 대본을 끝맺을 수 있다는 것을 읽는 누구에게나 주목해야 합니다.
Stop-Process -processname regedit
레지스트리 조정(글로벌 수정)을 실행하고 실제로 자동으로 closing 스크립트를 실행하려는 경우.
언급URL : https://stackoverflow.com/questions/9362722/stop-powershell-from-exiting
'programing' 카테고리의 다른 글
두 번째 테이블의 행이 존재하지 않더라도 오른쪽 조인 (0) | 2023.10.22 |
---|---|
비트 유형 열에 삽입할 수 있는 값은 무엇입니까? (0) | 2023.10.22 |
캐리지 리턴 인 C? (0) | 2023.10.17 |
memcpy 대 C의 할당 (0) | 2023.10.17 |
PowerShell로 문자열을 분할하고 각 토큰으로 작업 수행 (0) | 2023.10.17 |