PowerShell 終了するには何かキーを押してください?

Python で『続行するには何かキーを押してください』を表示するやり方です。

Python から "PAUSE" コマンドを実行したらできました。

PAUSE コマンドの解説

PAUSE(ポーズ) コマンドの解説は、Windows のコマンドプロンプトで確認できました。

"help pause" を実行します。

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

F:\>help pause
バッチ プログラムの処理を一時停止し、
"続行するには何かキーを押してください . . ."
というメッセージを表示します。
F:\>

『処理を一時停止してメッセージを表示する』という、そのままの説明でした。

この "PAUSE" コマンドを、Python から実行します。

os.system()を使った方法

一番簡単な方法です。

(Python) os.system(command)

コード例

os.system() を使ったコード例です。

"""『続行するには何かキーを押してください』と表示するプログラム"""
# オーエス・システムを使う方法

import os
os.system('PAUSE')

実行結果

Python のインタプリタで実行した結果です。

『続行するには何かキーを押してください』と表示されてから何かキーを押すと、『リターンコードのゼロ』が返りました。

このゼロは、os.system() の戻り値です。

>>> import os
>>> os.system('PAUSE')
続行するには何かキーを押してください . . .
0

subprocess.call()を使った方法

Python マニュアルでは、サブプロセスを使う方法を推奨していました。

os.system() からの書き換えとして、subprocess.call() を使った方法が載っていました。

なので、subprocess.call() を使った方法を紹介します。

(Python) os.system() を置き換える

(Python) subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, cwd=None, timeout=None)

コード例

subprocess.call() を使ったコード例です。

"""『続行するには何かキーを押してください』と表示するプログラム"""
# サブプロセス ドット コールを使う方法

import subprocess
subprocess.call('PAUSE', shell=True)

shell=True の安全性 ⇒ 問題ない(コマンド固定だから)

ところで、shell=True の安全性が気になるかもしれません。この場合は安全だと思います。

コマンドが 'PAUSE' で固定だから、安全なのです。

そして、'PAUSE' コマンド自体も、一時停止 ⇒ 再開 するだけの無害なコマンドだから、安全なのです。

shell=True の安全性が問題になるのは、コマンドが固定じゃないときだと思います。

たとえば、ユーザーから何か文字入力を受けて、それを subprocess.call() に渡す時です。

何か』を渡すので、いろいろな想定外が考えられます。

それに対して、今回のコードは、'PAUSE' だけしか実行できません。だから、安全なのです。

'PAUSE' コマンドで起こることだけを想定してコードを書けばOKだから、安全なのです。

自分は、そのように理解しています。

実行結果

Python のインタプリタで実行した結果です。

『続行するには何かキーを押してください』と表示されてから何かキーを押すと、『リターンコードのゼロ』が返りました。

このゼロは、subprocess.call() の戻り値です。

>>> import subprocess
>>> subprocess.call('PAUSE', shell=True)
続行するには何かキーを押してください . . .
0

subprocess.run()を使った方法

Python マニュアルでは、サブプロセスの中でも、subprocess.run() を使う方法を推奨していました。

なので、subprocess.run() を使った方法を紹介します。

(Python) subprocess モジュールを使う

(Python) subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, env=None)

コード例

subprocess.run() を使ったコード例です。

"""『続行するには何かキーを押してください』と表示するプログラム"""
# サブプロセス ドット ランを使う方法

import subprocess
subprocess.run('PAUSE', shell=True)

実行結果

Python のインタプリタで実行した結果です。

『続行するには何かキーを押してください』と表示されてから何かキーを押すと、『CompletedProcess クラスのインスタンス』が返りました。

コンプリーテッドプロセス クラス
(Python) class subprocess.CompletedProcess

このインスタンスは、subprocess.run() の戻り値です。

>>> import subprocess
>>> subprocess.run('PAUSE', shell=True)
続行するには何かキーを押してください . . .
CompletedProcess(args='PAUSE', returncode=0)

実行中のプログラムの動作を見るときに使う

PAUSE コマンドで『続行するには何かキーを押してください』と表示するコードは、プログラムの動作確認や動きを説明するときに、よく使用しました。

プログラムを止めたいところで一時停止するのに便利だったんですよね。

実行中の Python プログラムの優先度を変更するコード例の説明でも使用しました。

プログラムを『PAUSE(ポーズ、一時停止)』するためのコマンドなので、そのままの用途になります。

あとは、プログラムの実行が完了したときに、ウィンドウが閉じてしまうのを防ぎたいときに使っています。

実行中のプログラムを一時停止する方法の説明で使いました。

Windows のバッチファイルの最後に PAUSE って書くのと同じような使い方ですね。

プログラムの実験をしているときに、使う場面が多かったです。

組み込みのウィンドウではうまく動かないことがあった

PAUSE コマンドは、Visual Studio Code に組み込まれている『デバッグ コンソール』や『ターミナル』などでは、うまく動かないことがありました。

Python に付属している IDLE でも、似たような感じでした。

なにかやり方があるのかもしれませんが、ちょっとわかりませんでした。

なので、PAUSE コマンドを含んだ Python スクリプトを実行するときは、『cmd.exe』や『py.exe』などの中で実行することをおすすめします。

キーボードの『Pauseキー』を押して一時停止する方法もあった

プログラムを一時停止する方法は、ほかにもありました。

キーボードの『Pause キー』を押すと、プログラムを好きなタイミングで一時停止できました。

再開したいときは、何かキーを押すことで再開できました。

こちらは、既存のプログラムそのままで使える方法でした。

プログラムで『PAUSE コマンド』を実行する方法と、キーボードの『Pause/Break キー』を使う方法

どちらも便利に使っています。

以上です。

PowerShellの終了ショートカットは?

開始および終了のキーボード ショートカット.

PowerShellの呼び出し方は?

PowerShellの起動方法 Windows PowerShellを起動するには、[スタート] メニュー → [Windows PowerShell] → [Windows PowerShell] または [Windows PowerShell (x86)] をクリックします。

Windowspowershellのコマンドは?

PowerShellでは、コマンドを「コマンドレット」と呼び、コマンドレットを使ってWindowsへ命令を行います。 コマンドレットは「動詞-名詞」の命名規則に沿って作られています。 たとえば、ディレクトリを移動したい場合は「Set-Location」というように直感的にコマンドレットを記述できます。

PowerShellの機能は?

PowerShell スクリプト言語には、次の機能が含まれています。.
関数、クラス、スクリプト、およびモジュールを通じて拡張可能.
出力を容易にするための拡張可能な書式設定システム.
動的な型を作成するための拡張可能な型システム.
CSV、JSON、XML などの一般的なデータ形式用の組み込みサポート.