バッチファイルを実行する時に黒いコマンドプロンプト画面を表示しない方法
バッチファイルを実行すると、コマンドプロンプトの黒い画面が表示されますよね。
手動で実行する時は処理内容が見えて良いのですが、タスクスケジューラなどで自動実行している場合、パソコンの操作中にいきなりプロンプト画面が表示されることがあります。
ちょっと邪魔ですよね。
この記事では、コマンドプロンプト画面を表示しない方法を紹介します。
目次
VBS(VBScript)を使います
Windowsには、VBS(VBScript)というスクリプト言語があります。
拡張子が vbs のファイルなのですが、これをうまく使うと、コマンドプロンプト画面を非表示にできます。
イメージとしては、VBSファイルの中で「バッチファイル」を非表示で実行する、といった感じですね。
Windows 7とWindows Server 2012で実際に使ってます
以下で説明する方法は私が、
・Windows 7
・Windows 8
・Windows 10
・Windows Server 2012
で使っている方法です。
[2014/08/01追記]
Windows 8.1 Proの場合、「このファイルを開く方法を選んでください」というダイアログが表示され、うまく実行できないことがあるようです。
当記事の一番下にあるコメント欄にて、回避策を教えて頂きました。
同じ現象が出る場合はお試しくださいね。
- プログラム/スクリプトの内容を引数の追加に移動する。
パスは、”(ダブルクォーテーション)で囲む。 - 代わりに「C:\Windows\System32\wscript.exe」をプログラムとして実行する。
というのがポイントのようです。
Hayaさん、ありがとうございました!
バッチファイルを実行する「VBSファイル」を作成する
実行したいバッチファイルは、予め準備しておいてくださいね。
例として、「ライブラリのバックアップ.bat」というバッチファイルを作成しました。
ここからバッチファイルを実行する為のVBSファイルを作成します。
(1) テキストファイルを新規作成する
(2) テキストファイルにスクリプト(コマンド)を書く
Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c ライブラリのバックアップ.bat", vbhide
簡単に説明すると、
1行目:VBScriptのオブジェクト(データのカタマリみたいなもの)を作成する。
2行目:オブジェクトが持っているrun関数を使ってファイルを非表示で実行する。
となります。
1行目:VBScriptのオブジェクト(データのカタマリみたいなもの)を作成する。
2行目:オブジェクトが持っているrun関数を使ってファイルを非表示で実行する。
となります。
「ライブラリのバックアップ.bat」は実行するバッチファイル名です。
拡張子は bat ですね。
(3) ファイルを名前を付けて保存する
ファイル名は、わかりやすい名前、例えば、「ライブラリのバックアップ.vbs」などにしておきましょう。
拡張子が txt でなく、vbs になっていることにご注意ください!
ここで作成したVBSファイルは、バッチファイルと同じフォルダに保存してくださいね。
「タスクの設定方法」はほぼ同じです
バッチファイルとVBSファイルの準備ができました!
このファイルを使って、自動実行の為のタスク設定を行います。
バッチファイルの代わりにVBSファイルを指定する、というところがポイントです。
具体的には、操作タブの新しい操作画面の「プログラム/スクリプト」を以下のように設定します。
C:\Work\ライブラリのバックアップ.bat
↓
C:\Work\ライブラリのバックアップ.vbs
その他の設定方法は、この記事のタスクの設定方法を参考にしてくださいね。
これで設定は完了です!
手動で実行確認しておく
自動実行する前に、設定が正しいかどうか手動実行して確かめておきましょう。
右クリックして、「実行する」をクリックするとバッチファイルが実行されます。
この時、以前はコマンドプロンプトの黒い画面が表示されていましたが、今回は何も表示されなかったと思います。うまく実行できなかった場合は、設定を再確認してくださいね。
今後は、指定したバックアップ時間が来ても、コマンドプロンプト画面が表示されることなく、バックグラウンドでバッチファイルが実行されます!
少しだけ注意!
この記事の方法でコマンドプロンプトの画面を表示せず、実行できるようになります。
実行できるのですが、「バッチファイルを実行した後、エラーなどで途中で止まってしまう」と、バッチファイルが実行されたままの状態になってしまいます。
ですので、実行するバッチファイルは、
・はい/いいえなどの問い合わせがないようにしておく。
・エラーが発生した場合は、バッチファイルを終了させる。
(エラー内容はログファイルなどに残す)
ようにしてくださいね。
万が一、見えない状態で実行されたまま状態になった場合、Windowsのタスクマネージャーでプロセスを終了すれば大丈夫ですよ。
まとめ
私もこの記事の方法を設定するまでは、作業中にいきなり黒い画面が出て困っていました。
VBSファイルでバッチファイルを実行すると、黒い画面も表示されませんし、タスクバーにも表示されないので便利ですよ。
一度、お試しくださいね。
コメント
トラックバックは利用できません。
コメント (4)
こんにちは。
WIndows8.1Proで、バッチファイルを呼ぶvbsをタスクスケジューラから読んでみましたら「このファイルを開く方法を 選んでください」とダイアログが出てうまく動いてくれません。
調べてみましたら回避方法があるようです。
[回避方法のURL]
以上ご参考まで・・・。
Hayaさん、コメントありがとうございます。
手持ちのWindows8.1(無印)で試したところ、記事に書いていた方法のままで実行できました。Proでないからかも知れませんが。。。
教えて頂いたサイトにもありましたが、どうやら環境によって発生する場合があるようですね。
早速、記事に追記させて頂きました。
ありがとうございました!
Windows7にて、バッチファイルの黒画面を表示させないように
する必要があり、本記事を参考にさせてもらいました。
ありがとうございました。
おでんでんさん、コメントありがとうございます。
私もこの方法で、ファイルサーバや自分のパソコンのバックアップを定期的に実行してますよ。
黒画面が表示されないのは良いですね。
いきなり表示するとびっくりしますので。。。