(for Internet Explorer)
← ▼
vbslib4
VBScript (WSH)
vbslib のプログラミング言語 VBScript の説明です
VBScript (WSH) 言語を、バッチファイルのように簡単に使えるようにするスクリプト・プログラミング・
ライブラリーです。 vbslib を使ったスクリプトは、インストールしなくても、コピーするだけで使える
ようになります。 作業の自動化やテスト駆動開発(TDD)が快適に行えるよう、デバッグ機能が充実
しています。
vbslib のマニュアル（本書）です
vbslib ヘルプ
2012/7/1
ライセンス
→ BSDライセンス - Wikipedia (Web)
'// vbslib - Short Hand Library ver4.00 beta Jul.1, 2012
'// vbslib is provided under 3-clause BSD license.
'// Copyright (C) 2007-2012 Sofrware Design Gallery "Sage Plaisir 21" All Rights Reserved.
参考
無料でお使いいただけますが、無保証です。
再頒布や加工も vbs ファイルに書かれた下記を削除しなければ自由にできます。
vbslib を参考にして作成したスクリプトやライブラリの著作権は、あなたにあります。
ソフトウェアデザイン館 Sage Plaisir 21 http://www.sage-p.com/
サポート先
→ はじめに
インストール
→ アンインストール
→ エディター等の変更
→ 目次
初めて使ってみるときは、
vbslib Prompt.vbs
をダブルクリックしてください。
画面で見るマニュアル
ダウンロード
→ vbslib 4.00.zip
for Windows XP / 7 / 8
前のバージョン
→ vbslib3 (Web)
(help)
Sub Main( Opt, AppKey )
echo "Hello, world!"
End Sub
サンプル
→ スクリプトを作成する
解説
テキスト・エディターで編集
ダブルクリックで実行
sample.vbs
echo
Main
- shorthand library for vbscript -
version 4 beta
→ WSH のデバッガー
← ▼ ▲
目次
→ プロセス制御と include
→ エラー処理 （Err2）
→ ファイル操作
→ ユーザーインターフェース
→ vbs_inc （vbslib のベース・システム）
→ 変数、定数、文字列、配列、日時
Snap Note を使えば _src\vbslib.svg を開くことができ、
本文中の (src) が、ソースへのハイパーリンクになります。
→ vbslib2 から vbslib3 へ移植するには
→ 困ったときは？ （デバッグ）
→ はじめに （scriptlib フォルダー）
→ システム、OS、レジストリ
→ ネットワーク
→ ショートハンド・プロンプト (Prompt.vbs)
→ エディター等の設定変更 （setting フォルダー）
→ 自動テスト
→ バージョン判定、環境変数
← ▼ ▲
vbslib からエディターなどのツールを起動することがありますが、どのツールを使うのか
を、選択することができます。
Sub Main( Opt, AppKey )
echo "Hello, world!"
End Sub
'--- start of vbslib include ------------------------------
： （vbslib をインクルードして main を呼び出すコード）
はじめに （scriptlib フォルダー）
新規に vbslib を使ったスクリプトを作成するときは、sample.vbs （メイン）と、scriptlib フォルダ
を、作業を行う任意のフォルダにコピーしてください。 （この作業は、
の 3 を選んでもできます。） そして、コピーした sample.vbs をテキストエディタ
で編集するか、右クリック [ 編集 ] してください。 実行するときは、sample.vbs をダブル
クリックしてください。
scriptlib
sample.vbs
メイン.vbs は、scriptlib フォルダが入っているフォルダ（上記の場合はScriptA フォルダ）
のサブフォルダーに置くこともできます。 逆に言えば、scriptlib フォルダを、親フォルダに
移動することができます。 よって、ScriptA フォルダの中ならどこでも、scriptlib フォルダ
にある vbs ファイルの機能を使うことができます。
メイン.vbs のファイル名を変えることはできますが、scriptlib フォルダの名前を変えること
はできません。（すべての vbs ファイルの g_vbslib_path 変数を変えない限り。）
sample.vbs （メイン）
簡易 vbslib リンク 機能
vbslib include
vbslib include は、vbslib などのライブラリを使えるようにします。
vbslib を使うと、ファイル操作やプログラムの起動などを行う、スクリプトの作成（プログラ
ミング）が簡単になり、いろいろなことが自動化できます。
そして、作成したスクリプトを、
起動が素早くできるようになります。
複雑な処理を自動化
.vbs スクリプト
パソコン
コピーするだけで、
（任意の作業フォルダ）
vbslib のメインフォルダ
コピー
＋
scriptlib
Main
とりあえず使ってみるときは、左のツリーにある「ユーザインターフェース」、「ファイル
操作」、「プロセス制御」の章を参照して、sample.vbs を修正してみてください。
echo
アンインストール
vbslib の zip ファイルを展開したフォルダーを削除してください。
上記で説明している scriptlib フォルダーをコピーしていたら、それも削除してください。
ベースとなる VBScript(WSH) は、Windows 2000 から、プリインストールされています。
デバッガは、Visual Studio 2003 以降の Standard 以上または、フルインストールの MS-Office
があれば使えます。vbslib のソースは、構造化エディタに対応しています。
.vbs ファイルをダブルクリックしてから実行開始まで時間がかかるときは、ウィルス対策ソフトの
スクリプトに関するチェックをしないようにしてください。 チェックをしなくても、Windows のセキュ
リティ機能によって、ユーザーの許可無く悪意のあるスクリプトが実行されることはありません。
(src)
vbslib は、テスト駆動開発(TDD)も強力にサポートします。 単純な自動テスト・スクリ
プトを作ってから、そのテストが動くためのプログラムを開発するスタイルは、開発の
ゴールが明確になり、迷走することが無くなります。
→ テンポラリ・フォルダ
PCを借りているときは情報漏えいに注意してください。
→ エディター等の変更
テスト駆動開発(TDD)を行うには、「テスト・プロンプト (Test.vbs)」の章を参照してください。
上記の、scriptlib フォルダがどのように作られているかの詳細について知りたいときは、
「vbs_inc」 と 「setting フォルダ」 の章を参照してください。（中級者以上）
思い通りに動かなかったときは、「デバッグ」 、「困ったときは？」 の章を参照してください。
コマンド名は、MS-DOSバッチファイルや Linux シェル標準に準拠しています。
左のツリーを開いてください。いろいろな関数が用意されています。これらの関数や
あなたのオリジナルの関数を使ったスクリプトが、インストーラを実行することなく、
コピーするだけで使えるようになります。
→ オブジェクト、アプリ操作
MS オフィスなどのアプリケーションの操作は、WSH の ActiveX 機能を使ってください。
作成したスクリプトを
にすると使いやすくなります。
ショートハンド・プロンプト
ログファイルへの出力したいときは、コマンドプロンプトから下記のように入力してください。
cscript sample.vbs | safetee -o log.txt
safetee はネットから入手してください
ショートハンド・プロンプト
の形式にすれば、スクリプトの
→ テンポラリ・フォルダー
PCを借りているときは情報漏えいに注意してください。
スクリプトを作成する
・ファイルのコピー、移動、削除、開くことの自動化
・テキスト・ファイル（HTML, XML, CSV, プログラミング言語など）の編集の自動化
・数値の計算、データの集計の自動化
・コンパイル、テスト駆動開発(TDD)、問題の検索や通知の自動化
・バイナリ・ファイルの読み書きの自動化
・MSオフィスなど ActiveX アプリケーションのファイルの編集を含む処理の自動化
スクリプトで自動化できること
インストール
vbslib で作られたスクリプトのインストールは、スクリプト・ファイルと一緒に scriptlib
フォルダーをコピーするだけです。 このとき、vbslib パッケージをインストールしたり、
パスを通したりする必要はありません。
（メイン）
sample.vbs
scriptlib
samples
vbslib Short Hand
デバッガーのインストールについては、
→ デバッグ, g_debug
vbslib include
Prompt.vbs
vbslib パッケージのインストールは、ダウンロードした圧縮ファイルを解凍するだけです。
参考
→ vbs_inc, vbslib include （vbslib のコア・システム）
作成したスクリプトのデバッグをするときは、
→ 困ったときは？ （デバッグ）
← ▼ ▲
開発方針
・ユーザーの体験が、シンプル＆ビジュアルであること
・検索可能なサンプルからコピーして、見よう見真似で、すぐに試せること
・結果が同じであれば、エラーにしないこと。 例：ファイルが無いパスを指定して削除したとき
・結果がユーザーの想定外になるときは、仕様の通りであっても失敗したと伝えること
・対処法は、概念を介して説明するのではなく、サンプルを使ってダイレクトに示すこと
・エラーが発生して復帰するまでは、次のエラーが発生しても、最初のエラーを表示すること
・ユーザーから見ると意味が異なる、ボトムアップから定義された用語は使わないこと
・略語は標準化されたもののみ。 データ（名詞）か処理（動詞）の区別を明示すること。
・同じ機能が既存の技術にあれば、操作方法（コマンド名など）をそれに合わせること
← ▼ ▲
ショートハンド・プロンプト (Prompt.vbs)
ショートハンド・プロンプト(CUI)から、コマンドを入力すると、特別に用意されたスクリプトを素早く
起動することができます。 ドキュメントにコマンド名を書くと便利になります。
家計簿プロンプト
1. 今月の家計簿ファイルを開く [op]
2. バックアップする [bk]
3. 家計簿フォルダーを開く [fo]
番号またはコマンド >op
op
家計簿.vbs
↓ ダブルクリックすると開く
← 番号またはコマンドを入力する
→ vbslib に付属の Short Hand Prompt.vbs のヘルプ
→ ショートハンド・プロンプトの活用
→ MakeNewPrompt コマンド
… ショートハンド・プロンプトを、新規作成する
→ InputCommand 関数
… ショートハンド・プロンプトを起動する関数
← ▼ ▲
vbslib Prompt.vbs ファイルをダブルクリックすると、スクリプトの開発を支援する
スクリプトを起動することができます。 下記のようにメニューが表示されるので、番号を入力
してください。 また、メニューに表示されていないコマンドを入力することもできます。
vbslib に付属のショートハンド・プロンプト （vbslib Prompt.vbs）
vbslib - Short Hand Library
1. ヘルプ(SVG形式)の表示 (Google Chrome や Snap Note で見えます)
2. ヘルプ(Internet Explorer-VML形式)の表示
3. ■ vbs ファイルを新規作成する [MakeVbsLibSample]
4. scriptlib フォルダーを作成する [MakeVbsLibFolder]
5. ショートハンド・プロンプトを新規作成する [MakeNewPrompt]
6. Test テンプレート・フォルダーを開く
8. このプロンプトのソースを開く
9. vbslib フォルダーを開く
番号またはコマンド >3
左のツリーを展開すると、使えるコマンドの説明を見ることができます。 例：
コマンド名は、大文字と小文字を区別しません。 つまり、コマンド名の大文字の文字が小文字に
なっていたとしても起動できます。
コマンドの速記形を追加したり、独自のコマンドを追加したり、処理内容をカスタマイズしたりする
ことができます。
→ ショートハンド・プロンプトの活用
→ OpenFolder
vbslib Prompt.vbs
↓ ダブルクリックすると開く
初めて使ってみるときは、3 を選んで、簡単なスクリプトを動かしてみましょう。
Option Explicit
Sub main2( Opt, AppKey )
echo "Hello, world!"
End Sub
sample.vbs
3. ■ vbs ファイルを新規作成する [MakeVbsLibSample]
3
「3. vbs ファイルを新規作成する」を選ぶと、下記ような内容のファイルができます。
→ スクリプトを作成する
解説
← ▼ ▲
→ InputCommand
参考
入力できる専用コマンドは、多くの場合、アプリケーションのマニュアルに書かれています。
自分がしたいことをマニュアルの目次から見つけたら、その本文から専用コマンドを探してください。
画面で見るマニュアルを見ているのなら、専用コマンドをコピー＆ペーストできます。 ただし、
ペーストするときは、右クリックして [ 貼り付け ] をクリックしてください。
よく使うコマンドは、Snap Note のノート・バーなどに一時的に貼り付けておくと便利に使えます。
テンポラリ・フォルダーを開く
OpenTemp
画面で見るマニュアル
vbslib を使ったスクリプトを実行すると、その実行のために内部的に必要になる
ファイルが、テンポラリ・フォルダーに作られることがあります。
Prompt.vbs
ここを選択して、右クリックして [ コピー ] をクリック、
Prompt.vbs をダブルクリックして表示されるショートハンド・プロンプトを、
右クリックして [ 貼り付け ]
ショートハンド・プロンプトに入ります
-------------------------------------------------------------------------------
Short Hand Prompt
1. RunProgram
2. InvestigateLog
他. Document.svg を参照 (Google Chrome や Snap Note で見えます)
番号またはコマンド >2
-------------------------------------------------------------------------------
ログ・ファイルのパス >C:\Log\Test_log.txt
Test_log_summary.html を出力しました。
C:\Log\Test_log.txt
2
パスは、ファイルをプロンプトにドラッグ＆ドロップすることでも入力できます。
上記の黄色い部分が、ユーザーが入力する部分です。
コマンド名は、大文字と小文字を区別しません。 つまり、コマンド名の大文字の文字が小文字に
なっていたとしても起動できます。
コマンドを入力した後、パラメーターやファイルへのパスの入力を求められることがあります。
使い勝手の悪い専門的なプログラムは、それを支援するスクリプトを vbslib などで作成して、
アプリケーション・プロンプトの形にして、画面で見るマニュアル を用意することで、使いやすく
なります。
画面で見るマニュアルから、専用コマンドをコピー＆ペーストしたり、ショートカットを作成する
ことで、次々と魔術（スクリプト）を繰り出す速記原典（ショートハンド）のように、次々と処理を
起動させることができるようになります。
使いやすさは、CUI や GUI に関わらず、電子マニュアルの構成によって、大きく左右されます。
検索可能なユースケース・ベースのハイパーテキストでできたマニュアルを、Snap Note などで
作成するとよいでしょう。
画面で見るマニュアル とのコラボレーション
既存のプログラムを使いやすくする
ショートカットやバッチファイルなどから専用コマンドを実行する
一般のコマンドプロンプトや、バッチファイルなどから、専用コマンドを実行することもできます。
ただし、cmd.exe を使わないで、cscript.exe を使ってください。 できれば、VBScript を使って、
Prompt.vbs の内容を参考にして、関数を直接呼び出すようにしてください。 また、/ から始まる
オプションは、全てのパラメーターの後に指定してください。 これは、/ から始まる Linux の
パスもパラメーターに指定できるためです。
ショートハンド・プロンプトが開くアプリケーション(*.exe, *.vbs など) を、マウスの右ボタンで
ドラッグ＆ドロップして [ ショートカットをここに作成 ] を選ぶと、ダブルクリックするだけで
すぐに専用コマンドを起動できるようにできます。
マウスの右ボタンでドラッグ＆ドロップして [ ショートカットをここに作成 ]
Prompt - ショートカット
ショートカットを右クリックして [ プロパティ ] で、リンク先を修正。
cmd.exe /K cscript.exe //nologo "C:\Fo\Prompt.vbs" CommandA "C:\Log\file.txt"
リンク先：
↑専用コマンド名
↑パラメーター
こうしてできたショートカット・ファイルをダブルクリックすると、専用コマンドがすぐに実行されます。
cscript.exe //nologo Prompt.vbs CommandA "C:\Log\file.txt" /option:1
pause
テンポラリ・フォルダー
Prompt.vbs
↓ ダブルクリックすると開く
パラメーターを並べていくことで、複数の項目の入力にも対応できます。
"" を指定すると Enter のみの入力もできます。 ただし、「リンク先」の先頭に cmd.exe が必要です。
cmd.exe があると、専用コマンドが終了してもウィンドウが閉じなくなり、結果を確認できます。
エラーが発生したときに g_debug = 1 を設定するように表示されたら、/g_debug:1 を追加すると、
デバッガーに接続して、エラーが発生した場所を確認することができます。
cscript.exe Prompt.vbs CommandA "C:\Log\file.txt" /g_debug:1
→ デバッグ, g_debug
参考
/g_debug:1
エラーの原因がスクリプトの内容にあると疑われるとき
CommandA "C:\Log\file.txt"
"C:\Fo\Prompt.vbs"
cmd.exe /K cscript.exe //nologo
↑先頭に追加する必要がある場合もある
ファイルの関連付けに設定すれば、ファイルをダブルクリックして実行することもできます。
→ サンプル (InputCommand)
メニュー項目やコマンド名（の速記形）をカスタマイズする
参考
カスタマイズするには、InputCommand 関数に指定するパラメーターを編集してください。
cscript.exe //nologo
CommandA "C:\Log\file.txt"
ショートハンド・プロンプトの活用
特別なスクリプトを起動するために、キーボードからコマンドを入力できる状態であることを示す
記号、またはそのウィンドウを、ショートハンド・プロンプトと呼びます。
特定の目的を達成するために作成した多くのスクリプトを、１つのスクリプト・ファイルにまとめた
ものが、ショートハンド・プロンプトです。
スクリプトファイル (Prompt.vbs) をテキスト・エディターで編集すれば、よく使うコマンドをメニュー
項目に追加したり、よく使うコマンドの名前を短くすることができます。
マニュアルを作成するときは、ユーザーがしたいこと（ユースケース）ごとの章と、コマンドごとの
章（索引）の両方を用意するとよいでしょう。
sample.bat
Prompt.vbs の CommandA 関数を呼び出します。 CommandA 関数の中で、input 系の
呼び出しが１つのときは、パラメーターは "C:\Log\file.txt"、残りの /option:1 はオプション。
← ▼ ▲
BashSyntax
bash シェル・スクリプト・ファイルの " ", ' ', ` ` の対応関係が複数行にまたがっている場所を探します。
番号またはコマンド >BashSyntax
シェル・スクリプト・ファイルのパス >sample.sh
<WARNING msg="複数行にまたがっています" line="7">"</WARNING>
<WARNING msg="複数行にまたがっています" line="8">"</WARNING>
BashSyntax
sample.sh
(src)
← ▼ ▲
ConvertToNewVbsLib
古い vbslib を使ったスクリプトを、最新の vbslib が使えるようにします。
番号またはコマンド >ConvertToNewVbsLib
古い vbslib を使ったスクリプトを、最新の vbslib が使えるようにします。
ver 1,2,3 → ver4
事前に変換を行うフォルダーのバックアップをとっておいてください。
変換を行うフォルダーのパス >C:\folder
C:\folder
(src)
(src)
ConvertToNewVbsLib
← ▼ ▲
CopyOnlyExist
コピー先に存在するファイルだけコピーします。
番号またはコマンド >CopyOnlyExist
コピー先に存在するファイルだけコピーします。
コピー先に存在するファイルがコピー元に無いときはエラーになります。
コピー元フォルダのパス>FolderA
コピー先フォルダのパス>FolderB
CopyOnlyExist
テスト
→ T_CopyOnlyExist フォルダ
(src)
FolderA
FolderB
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
CreateTask
指定時間に１回だけ実行するタスクを新規に登録します。
番号またはコマンド >CreateTask
指定時間に１回だけ実行するタスクを新規に登録します。
タスク名（任意）>vbslib_test
実行するコマンド>C:\Window\notepad.exe
例： 13:00 ... 今が午前10時なら、今日の午後1時に実行する
例： 1:00 ... 今が午前10時なら、明日の午前1時に実行する
例： +1:00 ... 今から1時間後に実行する
いつ実行を開始しますか>+0:01
CreateTask
テスト
(src)
[ 親: vbslib のショートハンド・プロンプト ]
→ T_Task フォルダ
vbslib_test
C:\Window\notepad.exe
+0:01
関連
→ SetTask
→ OpenTask
← ▼ ▲
CutLineFeedAtRightEnd
参考
→ CutLineFeedAtRightEnd
コマンドプロンプトの右端からあふれた文字列を１行にまとめます。
番号またはコマンド >CutLineFeedAtRightEnd
コマンドプロンプトの右端からあふれた文字列を１行にまとめます。
ファイルのパス>Text.txt
Enter のみ：80
１行の幅>
CutLineFeedAtRightEnd
ABCDEFGHIJKLMNOPQRST
UVWXYZ
END
ABCDEFGHIJKLMNOPQRSTUVWXYZ
END
Text.txt
(src)
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
DelTemp
→ OpenTemp
関連
テンポラリ・フォルダー
を削除します。
番号またはコマンド >DelTemp
DelTemp
(src)
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
Diff
２つ、または３つのテキストファイルの差分を表示します。
参考
(src)
番号またはコマンド >diff
[Diff] テキストファイルの比較
path1>C:\folder\file1.txt
path2>C:\folder\file2.txt
Enter のみ ： 2つのファイルの比較
path3>
diff
C:\folder\file1.txt
C:\folder\file2.txt
→ Setting_getDiffCmdLine
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
DiffClip
テンポラリ・ファイルを使って、２つ、または３つのテキストの差分を表示します。
(src)
参考
番号またはコマンド >DiffClip
[DiffClip] テキストの比較
次に表示されるファイルに、比較するテキストの１つ目を保存してください。
続行するには Enter キーを押してください . . .
次に表示されるファイルに、比較するテキストの２つ目を保存してください。
続行するには Enter キーを押してください . . .
２つのファイルの比較ですか[Y/N]
一時的に保存したファイルを削除しますか[Y/N]
DiffClip
→ Setting_getDiffCmdLine
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
fc
[ 親: vbslib のショートハンド・プロンプト ]
(src)
番号またはコマンド >fc
[fc] Compare text file
path1>C:\folder\file1.txt
入力例： Shift_JIS, EUC-JP, Unicode, UTF-8, UTF-8-No-BOM, ISO-8859-1
Enter のみ ： 自動判定
文字コードセット >
path2>C:\folder\file2.txt
文字コードセット >
same text, same binary.
２つのテキストファイルを比較します。
参考
→ IsSameTextFile
→ IsSameBinaryFile
fc
C:\folder\file1.txt
C:\folder\file2.txt
← ▼ ▲
fdiv
[ 親: vbslib のショートハンド・プロンプト ]
(src)
番号またはコマンド >fdiv
分割するファイル >C:\folder\file1.txt
分割後の１つのファイル・サイズ(MB) >500
Reading file1.txt ...
Writing file1.txt.001 ...
Saving file1.txt.001 ...
Writing file1.txt.002 ...
Saving file1.txt.002 ...
CreateFile file1_resume.bat
OK.
大きなファイルを分割します。
結合するバッチファイルも生成します。
fdiv
C:\folder\file1.txt
500
関連
→ WriteFromBinaryArray (BinaryArray)
← ▼ ▲
feq
番号またはコマンド >feq
[feq] ２つのバイナリファイル、またはフォルダーが同じかどうかを調べます。
path1>C:\folder\file1.txt
path2>C:\folder\file2.txt
same.
２つのバイナリファイル、またはフォルダーが同じかどうかを調べます。
参考
→ IsSameBinaryFile
feq
C:\folder\file1.txt
C:\folder\file2.txt
[ 親: vbslib のショートハンド・プロンプト ]
(src)
←
↓