-noexit
PowerShell用の小さなスイッチがあることを私は知っています。
そのスイッチを使用せずにシェルにとどまる方法はありますか?
つまり、実行してからシェルを開いたままにするスクリプトコマンドが必要です。
-noexit
PowerShell用の小さなスイッチがあることを私は知っています。
そのスイッチを使用せずにシェルにとどまる方法はありますか?
つまり、実行してからシェルを開いたままにするスクリプトコマンドが必要です。
基本的に、PowerShellコンソールウィンドウが閉じないようにするための3つのオプションがあります。これについては、ブログ投稿で詳しく説明します。
PowerShell -NoExit "C:\SomeFolder\SomeScript.ps1"
Read-Host -Prompt "Press Enter to exit"
変更するレジストリキーの詳細については、私のブログを参照してください。
オプション#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ループは、コマンドの入力を求めて実行します。スクリプトの環境で動作するため、変数の値を確認することができます。「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
レジストリの微調整(グローバル修正)を有効にしていて、実際に自動的に閉じるスクリプトを実行したい場合。