レジストリキーを使用してドロップ可能にしたPythonスクリプトがありますが、機能していないようです。cmd.exeウィンドウが点滅するだけですが、どういうわけかウィンドウを開いたままにするか、出力を保存できますか?
編集:問題は、ファイル名だけでなくパス全体が表示されることでした。
これに対する純粋な Python ソリューションが必要な場合は、スクリプトを try/except 句でラップする必要があります。
import traceback
try:
... your script ...
except:
traceback.print_exc()
raw_input("Press Enter to close") # Python 2
input("Press Enter to close") # Python 3
このようにして、コードが例外をスローした場合でも、ウィンドウは開いたままになります。Python がスクリプトを解析できない場合、つまり構文エラーがある場合は閉じます。それも修正したい場合は、より快適な方法で開発できる優れた IDE をお勧めします ( PyCharmとPyDevが思い浮かびます)。
スクリプトの最後に次の行を挿入します。
raw_input("Press Enter to close") # Python 2
また
input("Press Enter to close") # Python 3
もう1つの可能なオプションは、テキストエリアと閉じるボタンを備えた基本的なTKinterGUIを作成することです。次に、それをサブプロセスまたは同等のもので実行します。で実行されたPythonスクリプトからstdoutを取得してpythonw.exe
、CMDプロンプトがで始まるように表示されないようにします。
これにより、Python stdlibを純粋に使用できるようになり、GUIを使用してオプションを設定したりパラメーターを入力したりできるようになります...
ただのアイデア。
スクリプトを右クリックして、そのプロパティで Program->Close on exit チェックボックスを削除するかcmd /k
、呼び出し行の一部として使用します。
人為的な遅延を導入したり、キーを押す必要がある前に、よく考えてください。これにより、無人/パイプ呼び出しでスクリプトがほとんど使用できなくなります。
スクリプトの実行が終了すると、ウィンドウが閉じます。
それを開いたままにしておくための 1 つのトリックは、raw_inputなどを介して、ユーザーに何らかの入力を求めることです。
だからあなたはただ追加することができます
raw_input()
をスクリプトの最後に追加して、ユーザーが を押すのを待ちますEnter。