[記事公開日]2025/10/30
💻 wscript/cscriptコマンドの使い方|Windows Script HostでVBScript・JScriptを実行する方法
もくじ
はじめに
Windowsでは、VBScript(.vbs)やJScript(.js)といったスクリプトを実行できる仕組みとして Windows Script Host(WSH) が標準搭載されています。
このWSHをコマンドラインから操作できるのが wscript と cscript コマンドです。
どちらも同じスクリプトを実行できますが、出力方法や動作モードに違いがあります。
この記事では、wscript/cscript の違い、基本的な使い方、オプション、実行例をわかりやすく紹介します。
🛠 wscript/cscriptコマンドとは?
| コマンド | 概要 |
|---|---|
| wscript | GUIモードでスクリプトを実行(ダイアログ形式で出力) |
| cscript | コンソールモードでスクリプトを実行(コマンドプロンプト上で出力) |
どちらも Windows Script Host(wscript.exe / cscript.exe) の実行エンジンであり、VBScript(.vbs)やJScript(.js)を動かすための仕組みです。
wscript はGUI向け、cscript はバッチ処理やログ出力向けに適しています。
📌 基本構文
wscript <スクリプトファイル> [引数]
cscript <スクリプトファイル> [オプション] [引数]
主なオプション(cscript専用)
| オプション | 説明 |
|---|---|
/B |
バッチモード(メッセージボックス等を非表示) |
/E:<エンジン名> |
使用するスクリプトエンジンを指定(例:JScript, VBScript) |
/H:<ホスト名> |
既定のホスト(wscript または cscript)を設定 |
/Nologo |
バナー(著作権表示など)を非表示にする |
/T:<秒> |
スクリプトの最大実行時間を指定(タイムアウト) |
/U |
Unicode出力を有効化 |
/D |
デバッグを有効にする |
💡 使用例
1️⃣ VBScriptをGUIモードで実行
wscript message.vbs
message.vbs の中で MsgBox "Hello!" と記述されている場合、ダイアログが表示されます。
2️⃣ コンソール出力でスクリプトを実行
cscript message.vbs
結果がコマンドプロンプト上に表示されるため、バッチ処理などに向いています。
3️⃣ スクリプトに引数を渡す
cscript script.vbs arg1 arg2
VBScript内では WScript.Arguments(0) などで引数を取得可能です。
4️⃣ バッチモードでメッセージ非表示実行
cscript script.vbs /B /Nologo
ユーザー操作なしで静かにスクリプトを実行できます。ログ出力型スクリプトに最適です。
⚙️ 応用的な使い方
✅ タスクスケジューラでの自動実行
スクリプトを夜間に自動実行させたい場合は、cscript で指定してタスクスケジューラに登録します。
メッセージボックスが出ないため、無人実行に適しています。
✅ バッチファイルからの連携
@echo off
echo スクリプトを実行中...
cscript C:\Scripts\Backup.vbs /B /Nologo
echo 完了しました。
✅ 既定のスクリプトホストを切り替え
cscript //H:cscript
この設定を行うと、今後 .vbs ファイルをダブルクリックした際にもコンソールモードで実行されるようになります。
⚠️ 注意点
| 注意点 | 説明 |
|---|---|
| 管理者権限が必要な場合あり | スクリプトの内容によっては権限が必要です |
| メッセージボックスの多用に注意 | 無人実行では wscript は適しません |
| 出力が異なる | wscript はGUI表示、cscript はテキスト出力となります |
| セキュリティ設定で制限される場合あり | 組織環境ではWSHが無効化されているケースがあります |
🧠 補足
.vbs や .js ファイルを直接ダブルクリックした場合、既定のホストで実行されます。
cscript //H:wscript または cscript //H:cscript で切り替えが可能です。
📊 まとめ表
| 操作内容 | コマンド例 | 説明 |
|---|---|---|
| GUI実行 | wscript test.vbs |
ダイアログで実行 |
| コンソール実行 | cscript test.vbs |
コマンド出力として実行 |
| 無人実行 | cscript test.vbs /B /Nologo |
メッセージなしで実行 |
| デフォルト切替 | cscript //H:cscript |
コンソール実行を既定に設定 |
🔗 関連記事
-
⚙️ setlocal/endlocalコマンドで変数スコープを制御する方法
-
🧩 callコマンドで別バッチを呼び出す方法
-
🧠 forコマンドでループ処理を行う方法
➡️ 同カテゴリ記事リスト
- ⚙️ setコマンドの使い方|環境変数の操作とバッチ処理の要
- ⚙️ setxコマンドの使い方|環境変数を永続的に設定・保存する方法
- ⌨️ choiceコマンドの使い方|ユーザー入力を待ち受けて処理を分岐する方法
- 🧩 setlocal/endlocalコマンドの使い方|環境変数のスコープを制御して安全にバッチを実行する方法
- 🔄 shiftコマンドの使い方|バッチファイルでの引数操作の基本
- 🔄 callコマンドの使い方|別バッチファイルの呼び出しと制御
- 🔁 forコマンドの使い方|繰り返し処理で効率的なバッチ作成を実現
- 🔀 ifコマンドの使い方|条件分岐でバッチ処理を制御する方法
- 📝 remコマンドの使い方|バッチファイルにコメントを追加する方法
- 💻 wscript/cscriptコマンドの使い方|Windows Script HostでVBScript・JScriptを実行する方法
さいごに
wscript/cscript コマンドは、Windowsスクリプトを実行するための基本ツールです。
GUI向けの wscript と、バッチ・ログ向けの cscript を使い分けることで、柔軟な自動化処理が可能になります。
特に、ログ出力や定期実行などの管理スクリプトでは cscript の利用がおすすめです。
