コンソールスクリプトが別ウィンドウで実行される

OSを再インスコして気づいたけど、PythonみたいなスクリプトファイルをPowerShellから直接実行しようとすると別ウィンドウに表示されるのな。

f:id:itasuke:20171127144630p:plain

一方で py hello.py とか python hello.py とかやると、ちゃんとコンソールウィンドウを引き継いでくれる。

f:id:itasuke:20171127144219p:plain

この動作は普通なのかなと思って、ちょっとググってみるが、どうやらそうっぽい。

PATHEXT に .py を追加しておくと、従来のコマンドプロンプトと同じ動作になる。

f:id:itasuke:20171127144216p:plain

毎回コンソールを立ち上げるたびに手動で PATHEXT を変更するのは面倒なので、大元の環境変数を変更しておくとよい。

f:id:itasuke:20171127145632p:plain

PATHEXTの意味

PATHEXT の本来の目的は、拡張子の指定を省略することにある。.exe をつけなくても py.exe や ipconfig.exe が起動するのはそういう理由による。

PATHEXT に .py が追加されると、このように拡張子を省略してもファイルが実行されるようになる。

f:id:itasuke:20171127144209p:plain