コマンドプロンプトを表示せずにWindowsバッチファイルを実行することはできますか?
バッチファイルはWindowsで一連のコマンドを実行する便利な方法ですが、バックグラウンドで見えないように実行する方法はありますか?方法を見つける上で読んでください.
本日の質疑応答セッションは、コミュニティ主導のQ&A Webサイトのグループである、Stack Exchangeの下位区分であるSuperUserの好意により提供されます。.
質問
SuperUserの読者JakeはBATファイルを目に見えないように実行したい、と彼は書いている:
コマンドラインから起動するRedcarというルビーの宝石をインストールしました。それが実行されると、それは終了するまでシェルを盗むので、コマンドライン作業を続けるために新しいシェルウィンドウを作成しなければなりません。私が使っているシェルは、MySysGitのGITBashシェルです。.
ショートカットとしてRedcarを起動するためのRedcar.batファイルを見つけましたが、BATファイルを起動するたびに余分なコマンドプロンプトウィンドウを開かないようにしたいと思います。.
プロンプトが表示されずにBATを実行する方法?
ジェイクのステルス即興欲望の解決策はありますか?
回答
SuperUserの貢献者であるAfrazierは、悪いニュースと良いニュースを組み合わせて回答します。
できません - 組み込みのコマンドプロンプトでバッチファイルを実行すると、バッチファイルが終了するまでウィンドウが開いたままになります。.
あなたは何 できる バッチファイルができるだけ早く終了するようにするための手順を実行します。可能であれば、バッチファイルを修正して、任意のプログラムを
開始
コマンド。デフォルトで,開始
プログラムが終了するのを待たずにすぐに戻るので、バッチファイルは実行を継続し、おそらく即座に終了します。ショートカットを変更してバッチファイルを最小化して実行すると、画面にウィンドウが表示されずにタスクバーがフラッシュするだけになります。.これに対する1つの注意点は、コンソールモードのプログラムを実行している場合(多くのスクリプトインタプリタがそうです)、バッチファイルはプログラムが終了するのを待ち、そして
開始
新しいコンソールウィンドウを開くでしょう。この場合あなたがする必要があるのはコンソールベースのものの代わりにWindowsベースのインタプリタのバージョンを実行することです - いいえ開始
必要。 Perlの場合は、wperl.exe
の代わりにperl.exe
. Pythonでは、それはpythonw.exe
の代わりにpython.exe
. 私がダウンロードした古いwin32 Rubyディストリビューションはrubyw.exe
, これは同じことをするべきです.最後の可能性は、隠されたウィンドウでコマンドプロンプトを実行するためにサードパーティ製のツールを使うことです。私はそのようなことを聞いたことがありますが、それらを使用したことは一度もありませんでした。.
読者たちはまた、可視性を最小限に抑え、CMDプロンプトを完全に隠すことを超えた、Visual Basicスクリプトの使用方法を強調した別のSuperUserスレッドを紹介しました。そのスレッドの中で、Harry MCは説明しています。
解決策1:
この1行のテキストをファイルとして保存する
invisible.vbs
:CreateObject( "Wscript.Shell")。 "" ""&WScript.Arguments(0)& "" ""、0、Falseを実行します。
見えないようにプログラムやバッチファイルを実行するには、次のように使用します。
wscript.exe“ C:\ Wherever \ invisible.vbs”“ C:\その他の場所\ MyBatchFile.bat”
引数のリストを渡したり中継したりできるようにするには、二重引用符を2つだけ使用します。
CreateObject(“ Wscript.Shell”)。“”&WScript.Arguments(0)&“”、0、Falseを実行します。
例:Invisible.vbs“ Kill.vbs ME.exe”
解決策2:
コマンドラインツールを使って静かにプロセスを起動する:Quiet.
VBSやサードパーティ製のツールを使用しているかどうかにかかわらず、上記のいずれかのソリューションを採用すると、少なくともCMDウィンドウの可視性が低下するか、完全に削除されます。.
説明に追加するものがありますか?コメントの中で消してください。他の技術に精通したStack Exchangeユーザーからの回答をもっと読みたいですか?こちらのディスカッションスレッドをチェックしてください。.