(for Internet Explorer)
vbslib4
vbslib のプログラミング言語 VBScript の説明です
VBScript (WSH) 言語を、バッチファイルのように簡単に使えるようにするスクリプト・プログラミング・
ライブラリーです。 vbslib を使ったスクリプトは、インストールしなくても、コピーするだけで使える
ようになります。 作業の自動化やテスト駆動開発(TDD)が快適に行えるよう、デバッグ機能が充実
しています。
vbslib のマニュアル(本書)です
2013/2/14
ライセンス
'// vbslib - Short Hand Library  ver4.01  Feb.14, 2013
'// vbslib is provided under 3-clause BSD license.
'// Copyright (C) 2007-2013 Sofrware Design Gallery "Sage Plaisir 21" All Rights Reserved.
参考
無料でお使いいただけますが、無保証です。
再頒布や加工も vbs ファイルに書かれた下記を削除しなければ自由にできます。
vbslib を参考にして作成したスクリプトやライブラリの著作権は、あなたにあります。
サポート先
インストール
初めて使ってみるときは、
vbslib Prompt.vbs
をダブルクリックしてください。
画面で見るマニュアル
ダウンロード
for Windows XP / 7 / 8 (32bit/64bit)
前のバージョン
Sub  Main( Opt, AppKey )
  echo "Hello, world!"
End Sub
サンプル
解説
テキスト・エディターで編集
ダブルクリックで実行
sample.vbs
- shorthand library for vbscript -
version 4.01
Snap Note を使えば _src\vbslib.svg を開くことができ、
本文中の (src) が、ソースへのハイパーリンクになります。
vbslib からエディターなどのツールを起動することがありますが、どのツールを使うのか
を、選択することができます。
Sub  Main( Opt, AppKey )
  echo "Hello, world!"
End Sub

'--- start of vbslib include ------------------------------
  :   (vbslib をインクルードして main を呼び出すコード)
新規に vbslib を使ったスクリプトを作成するときは、sample.vbs (メイン)と、scriptlib フォルダ
を、作業を行う任意のフォルダにコピーしてください。 (この作業は、
        の 3 を選んでもできます。) そして、コピーした sample.vbs をテキストエディタ
で編集するか、右クリック [ 編集 ] してください。 実行するときは、sample.vbs をダブル
クリックしてください。
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
とりあえず使ってみるときは、左のツリーにある「ユーザインターフェース」、「ファイル
操作」、「プロセス制御」の章を参照して、sample.vbs を修正してみてください。
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
デバッガーのインストールについては、
vbslib パッケージのインストールは、ダウンロードした圧縮ファイルを解凍するだけです。
参考
作成したスクリプトのデバッグをするときは、
開発方針
・ユーザーの体験が、シンプル&ビジュアルであること
・検索可能なサンプルからコピーして、見よう見真似で、すぐに試せること
・結果が同じであれば、エラーにしないこと。 例:ファイルが無いパスを指定して削除したとき
・結果がユーザーの想定外になるときは、仕様の通りであっても失敗したと伝えること
・対処法は、概念を介して説明するのではなく、サンプルを使ってダイレクトに示すこと
・エラーが発生して復帰するまでは、次のエラーが発生しても、最初のエラーを表示すること
・ユーザーから見ると意味が異なる、ボトムアップから定義された用語は使わないこと
・略語は標準化されたもののみ。 データ(名詞)か処理(動詞)の区別を明示すること。
・同じ機能が既存の技術にあれば、操作方法(コマンド名など)をそれに合わせること
ショートハンド・プロンプト(CUI)から、コマンドを入力すると、特別に用意されたスクリプトを素早く
起動することができます。 ドキュメントにコマンド名を書くと便利になります。
家計簿プロンプト
1. 今月の家計簿ファイルを開く [op]
2. バックアップする [bk]
3. 家計簿フォルダーを開く [fo]
番号またはコマンド >op
op
家計簿.vbs
↓ ダブルクリックすると開く
← 番号またはコマンドを入力する
… ショートハンド・プロンプトを、新規作成する
… ショートハンド・プロンプトを起動する関数
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
左のツリーを展開すると、使えるコマンドの説明を見ることができます。 例:

コマンド名は、大文字と小文字を区別しません。 つまり、コマンド名の大文字の文字が小文字に
なっていたとしても起動できます。

コマンドの速記形を追加したり、独自のコマンドを追加したり、処理内容をカスタマイズしたりする
ことができます。
vbslib Prompt.vbs
↓ ダブルクリックすると開く
初めて使ってみるときは、3 を選んで、簡単なスクリプトを動かしてみましょう。
Option Explicit

Sub  main2( Opt, AppKey )
  echo "Hello, world!"
End Sub
sample.vbs
 3. ■ vbs ファイルを新規作成する [MakeVbsLibSample]
3
「3. vbs ファイルを新規作成する」を選ぶと、下記ような内容のファイルができます。
解説
参考
入力できる専用コマンドは、多くの場合、アプリケーションのマニュアルに書かれています。
自分がしたいことをマニュアルの目次から見つけたら、その本文から専用コマンドを探してください。
 
画面で見るマニュアルを見ているのなら、専用コマンドをコピー&ペーストできます。 ただし、
ペーストするときは、右クリックして [ 貼り付け ] をクリックしてください。
よく使うコマンドは、Snap Note のノート・バーなどに一時的に貼り付けておくと便利に使えます。
テンポラリ・フォルダーを開く
画面で見るマニュアル
vbslib を使ったスクリプトを実行すると、その実行のために内部的に必要になる
ファイルが、テンポラリ・フォルダーに作られることがあります。
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:1
エラーの原因がスクリプトの内容にあると疑われるとき
CommandA "C:\Log\file.txt"
"C:\Fo\Prompt.vbs"
cmd.exe /K (cscript.exe //nologo
↑先頭に追加する必要がある場合もある
ファイルの関連付けに設定すれば、ファイルをダブルクリックして実行することもできます。
メニュー項目やコマンド名(の速記形)をカスタマイズする
参考
カスタマイズするには、InputCommand 関数に指定するパラメーターを編集してください。
cscript.exe //nologo
CommandA "C:\Log\file.txt"
特別なスクリプトを起動するために、キーボードからコマンドを入力できる状態であることを示す
記号、またはそのウィンドウを、ショートハンド・プロンプトと呼びます。

特定の目的を達成するために作成した多くのスクリプトを、1つのスクリプト・ファイルにまとめた
ものが、ショートハンド・プロンプトです。
スクリプトファイル (Prompt.vbs) をテキスト・エディターで編集すれば、よく使うコマンドをメニュー
項目に追加したり、よく使うコマンドの名前を短くすることができます。
マニュアルを作成するときは、ユーザーがしたいこと(ユースケース)ごとの章と、コマンドごとの
章(索引)の両方を用意するとよいでしょう。
sample.bat
Prompt.vbs の CommandA 関数を呼び出します。 CommandA 関数の中で、input 系の
呼び出しが1つのときは、パラメーターは "C:\Log\file.txt"、残りの /option:1 はオプション。
bash シェル・スクリプト・ファイルの " ", ' ', ` ` の対応関係が複数行にまたがっている場所を探します。
番号またはコマンド >BashSyntax
シェル・スクリプト・ファイルのパス >sample.sh
<WARNING msg="複数行にまたがっています" line="7">"</WARNING>
<WARNING msg="複数行にまたがっています" line="8">"</WARNING>
BashSyntax
sample.sh
(src)
古い 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
指定時間に1回だけ実行するタスクを新規に登録します。
番号またはコマンド >CreateTask
指定時間に1回だけ実行するタスクを新規に登録します。
タスク名(任意)>vbslib_test
実行するコマンド>C:\Window\notepad.exe
例: 13:00 ... 今が午前10時なら、今日の午後1時に実行する
例:  1:00 ... 今が午前10時なら、明日の午前1時に実行する
例: +1:00 ... 今から1時間後に実行する
いつ実行を開始しますか>+0:01
CreateTask
テスト
(src)
→ T_Task フォルダ
vbslib_test
C:\Window\notepad.exe
+0:01
関連
参考
コマンドプロンプトの右端からあふれた文字列を1行にまとめます。
番号またはコマンド >CutLineFeedAtRightEnd
コマンドプロンプトの右端からあふれた文字列を1行にまとめます。
ファイルのパス>Text.txt

Enter のみ:80
1行の幅>
CutLineFeedAtRightEnd
ABCDEFGHIJKLMNOPQRST
UVWXYZ
END
ABCDEFGHIJKLMNOPQRSTUVWXYZ
END
Text.txt
(src)
関連
を削除します。
番号またはコマンド >DelTemp
DelTemp
(src)
2つ、または3つのテキストファイルの差分を表示します。
参考
(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
テンポラリ・ファイルを使って、2つ、または3つのテキストの差分を表示します。
(src)
参考
番号またはコマンド >DiffClip
[DiffClip] テキストの比較
次に表示されるファイルに、比較するテキストの1つ目を保存してください。
続行するには Enter キーを押してください . . .

次に表示されるファイルに、比較するテキストの2つ目を保存してください。
続行するには Enter キーを押してください . . .

2つのファイルの比較ですか[Y/N]

一時的に保存したファイルを削除しますか[Y/N]
DiffClip
(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.
2つのテキストファイルを比較します。
参考
fc
C:\folder\file1.txt
C:\folder\file2.txt
(src)
番号またはコマンド >fdiv
分割するファイル >C:\folder\file1.txt
分割後の1つのファイル・サイズ(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
関連