(for Internet Explorer)
← ▼ ▲
↑
設定を変更するときは、デフォルトの設定が記述されている関数を参考にして、変更する関数
だけを、新しい vbs ファイルに記述し、
エディター等の設定変更 （setting フォルダー）
vbslib を使ったスクリプトは、スクリプトがテキスト・ファイルを開くために起動するエディターや、
テキストを比較するツールなどを、「C:\Program Files」 フォルダーを調べて自動的に探します。
うまくいかないときは、設定を変更してください。
setting フォルダー
setting_default フォルダー
デフォルトの設定は、
の PC_setting_default.vbs に入っている
に格納してください。
→ vbslib が呼び出すユーザー設定関数
参考
PC_setting_default.vbs
Setting_getEditorCmdLine 関数
Setting_getDiffCmdLine 関数
Setting_openFolder 関数
関数定義を参照してください。
テキストエディタの設定
テキスト比較（Diff）ツールの設定
フォルダを開くツールの設定
← ▼ ▲
vbslib が呼び出すユーザー設定関数
→ Setting_getIncludePathes
インクルードする外部 .vbs ファイルのパスの配列を返す。
テキストエディタの設定。パスを返す。
テキスト比較（Diff）ツールの設定。パスを返す。
PC_setting.vbs
vbs_inc_setting.vbs
→ Setting_openFolder
フォルダを開きます。
→ Setting_getDiffCmdLine
→ Setting_getEditorCmdLine
→ Setting_getAdminUserName
管理者のユーザ名を返します。
[ 親: setting フォルダ ]
の中の .vbs ファイルに、ユーザーが定義する関数です。
→ Setting_onAfterInclude
すべてのモジュールをインクルードした後のコールバック。
setting フォルダー
← ▼ ▲
setting フォルダー, setting_default フォルダー
vbs_inc
によって、setting フォルダーに入っている、
の setting_default フォルダの中の全 .vbs ファイル
1.
3.
%APPDATA%\Scripts フォルダの中の全 .vbs ファイル (*2)
環境変数 myhome_mem は、必要に応じて設定してください。
[ スタート | コンピューター ] を右クリック [ プロパティ | 詳細設定 | 環境変数 ]
[ ユーザー環境変数 ] に設定してください。
(*1)
の setting フォルダの中の全 .vbs ファイル
4.
→ 部分Empty構造体パラメータ
%APPDATA%
Scripts
Xxx_setting.vbs
← 2. PC全体の設定 (*2)
setting フォルダーは、vbslib の設定を記述した vbs ファイルを格納するフォルダーです。
scriptlib\vbslib400\setting フォルダーの中に、スクリプト・ファイルを配置し、関数定義を記述
することで設定を行います。
scriptlib
メイン.vbs
（任意のフォルダ）
setting_default
setting
← 1. デフォルト設定（通常、編集しません）
Xxx_setting_default.vbs
Xxx_setting.vbs
← 4. 上記の（任意のフォルダ）の中の設定
2.
%myhome_mem%\prog\scriptlib\setting_mem フォルダの中の全 .vbs ファイル (*1)
(*2)
コマンドプロンプトを開いて、echo %APPDATA%\Scripts と入力すると、実際の
パスが分かります。
→ [T_Setting] setting フォルダのテスト
%myhome_mem%\prog\scriptlib\setting_mem
Xxx_setting.vbs
← 3. USB メモリに入っている PC全体の設定
環境変数を使用
スクリプトを実行すると、はじめに
すべての vbs ファイルの内容を実行します。 つまり、vbs ファイルの名前は、自由に付ける
ことができます。 この実行によって、関数が定義されます。 setting フォルダーは、複数あり
ますが、下記の 1. 2. 3. 4. の順番で実行します。 同じ関数を他の .vbs ファイルでも定義して
いるときは、後で定義したものが優先されます。 4 の setting フォルダーにある設定が最も
優先されます。
例） Setting_getEditorCmdLine 関数
テスト
関連
vbslib400
[ 親: setting フォルダ ]
g_vbslib_ver_folder
g_vbslib_ver_folder
Windows 7 ： C:\Users\user1\AppData\Roaming
Windows XP ： C:\Document and Settings\user1\Application Data
2.が設定されていない PC を一時的に使うときのため
vbslib400
Xxx_setting.vbs
setting
scriptlib
← setting フォルダー
← 設定ファイル
← ▼ ▲
Function Setting_getIncludePathes( IncludeType as string ) as array of string
Setting_getIncludePathes
scriptlib フォルダーの中で、インクルードする .vbs ファイルのパスの配列を返します。
Function Setting_getIncludePathes( IncludeType )
Setting_getIncludePathes = Array(_
"vbslib.vbs", "sample_lib.vbs" )
End Function
(src)
→ vbs_inc
scriptlib フォルダに共通な環境変数の設定も、Setting_getIncludePathes 関数の中で行います。
[ 親: setting フォルダー ]
関連
scriptlib\vbslib400\setting\vbs_inc_setting.vbs
'--- start of parameters for vbslib include -------------------------------
g_Vers.Add "IncludeType", "TypeA"
IncludeType は通常 Empty ですが、下記のように scriptlib ヘッダで、IncludeType 変数の値を
設定すると、IncludeType 引数に値が渡ります。 この値に応じて、インクルードするモジュール
を選択することができます
Function Setting_getIncludePathes( IncludeType )
If IncludeType = "TypeA" Then
Setting_getIncludePathes = Array( "vbslib.vbs", "sample_lib.vbs" )
End If
End Function
IncludeType 引数 （旧 g_IncludeType）
→ デフォルトの環境変数の設定タイミング
サンプル
参考
パスは、vbs_inc_400.vbs ファイルがあるフォルダからの相対パスです。
vbc_inc_400.vbs ファイルは、指定しなくてもインクルードされます。
→ Setting_getIncludePathes
コールツリー
vbslib.vbs
sample_lib.vbs
TypeA
TypeA
→ include
参考
→ IncludeType 引数 （旧 g_IncludeType）
← ▼ ▲
Setting_onAfterInclude
Sub Setting_onAfterInclude()
すべてのモジュールをインクルードした後にコールバックされる関数。
→ 処理フロー
あるフォルダの中（scriptlib フォルダごと）にあるすべてのスクリプトの既定の環境変数を
設定することなどを行います。
[ 親: setting フォルダー ]
コールツリー
Setting_getIncludePathes
で返される .vbs ファイルをインクルードした後で行う処理を、
Setting_onAfterInclude 関数に記述してください。 Setting_onAfterInclude 関数の中では、
.vbs ファイルで定義されている関数などを呼び出すことができます。
非推奨
Setting_onAfterInclude を使うと暗黙的に処理が行われるので、推奨されません。
→ TestCommon.vbs
include
と
SearchParent
を使って、あるフォルダー（scriptlib フォルダーがある
フォルダーなど）の中にあるすべてのスクリプトに共通の処理を、インクルードして、呼び
出してください。
Sub main()
include SearchParent( "Common.vbs" )
Common_main
End Sub
メイン.vbs
Common.vbs
Sub Common_main() '// Setting_onAfterInclude 関数の代わり
set_ "VAR", "value"
End Sub
代わりに
参考
← ▼ ▲
Setting_openFolder
Sub Setting_openFolder( Path )
フォルダーを開きます。
この関数の内容を変えることで、エクスプローラー以外のファイラーを使うことが出来ます。
Path 引数にファイルのパスが渡されたときは、そのファイルを選択状態にしてください。
→ エディター等の変更 （setting フォルダー）
[ 親: setting フォルダー ]
【引数】
Path
フォルダー、またはファイルのパス
参考
(src)
← ▼ ▲
Function Setting_getEditorCmdLine( i as integer or string ) as string
テキストエディタを開くコマンドラインを返します。
Setting_getEditorCmdLine
(src)
【引数】
i
返り値
パス（文字列）、または、コマンドラインの種類（数値）
コマンドライン文字列, i に対応していないときは Empty
テキストエディタのパスのみ返す。 "" で囲まないこと
i=0 のとき
C:\Windows\notepad.exe
返り値の例：
返り値の例：
"C:\Windows\notepad.exe" "%1"
開くパスを %1 にした、テキストエディタを起動するコマンドラインを返す。
i=1 のとき
開くパスを %1、開いた後に検索するキーワードを %2 にした、テキストエディタを
起動するコマンドラインを返す。 %2 に対応できないときは、%1 だけ使ったコマンド
ラインを返します。
"C:\Program Files\search_open\search_open.exe" "%1#%2"
返り値の例：
i=3 のとき
返り値の例：
"C:\Windows\notepad.exe" "%1"
"C:\Windows\notepad.exe" "%1"
返り値の例：
i=2 のとき
返り値の例：
"C:\Program Files\sakura\sakura.exe" -Y=%L "%1"
開くパスを %1、開く行番号を %L にした、テキストエディタを起動するコマンドライン
を返す。 %L に対応できないときは、%1 だけ使ったコマンドラインを返します。
i が文字列のとき
i は、開こうとするテキストファイルの絶対/相対パスと、行番号、または開いた後に
検索するキーワードであるとして、実際に実行するコマンドラインを返します。
上記「使用サンプル」を参照。
i の例：
C:\FolderA\FileA.txt
行番号を含む i の例：
C:\FolderA\FileA.txt(100)
キーワードを含む i の例：
C:\FolderA\FileA.txt#FuncA
参考
使用サンプル
start Setting_getEditorCmdLine( "File1.txt" )
start Setting_getEditorCmdLine( "File1.txt(100)" )
start Setting_getEditorCmdLine( "File1.txt#FuncA" )
(*1)
(*2)
(*1)
最後の文字が ')' のときは、( ) の中が行番号であるとします。
ファイル名に # が含まれるときは、# の後が、開いた後に検索するキー
ワードであるとします。
(*2)
テスト
→ T_Open_1.vbs
関連
→ エディター等の変更 （setting フォルダー）
→ GetEditorCmdLine
[ 親: setting フォルダー ]
参考
→ GetEditorCmdLine
のソース
← ▼ ▲
Function Setting_getDiffCmdLine( i as integer ) as string
テキスト比較（Diff）を実行するコマンドラインのテンプレートを返す。
Setting_getDiffCmdLine
(src)
【引数】
i
返り値
コマンドラインの種類
コマンドライン文字列
Diff のパスのみ返す。 "" で囲まないこと
i=0 のとき
C:\Program Files\Rekisa\Rekisa.exe
例：
例：
"C:\Program Files\Rekisa\Rekisa.exe" "%1" "%2"
比較する２つのファイルのパスを %1, %2 にした、Diff を起動するコマンド
ラインを返す。
i=2 のとき
比較する３つのファイルのパスを %1, %2, %3 にした、Diff を起動する
コマンドラインを返す。
"C:\Program Files\Rekisa\Rekisa.exe" "%1" "%2" "%3"
例：
i=3 のとき
→ GetDiffCmdLine
関連
→ Rekisa - テキスト比較ツール
i=21 のとき
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
-ActiveFile="%1" "%1" "%2"
例：
比較する２つのファイルのパスを %1, %2 にして、%1 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
比較する２つのファイルのパスを %1, %2 にして、%2 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
例：
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
-ActiveFile="%2" "%1" "%2"
i=22 のとき
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
-ActiveFile="%1" "%1" "%2" "%3"
例：
比較する３つのファイルのパスを %1, %2, %3 にして、%1 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
i=31 のとき
比較する３つのファイルのパスを %1, %2, %3 にして、%2 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
例：
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
-ActiveFile="%2" "%1" "%2" "%3"
i=32 のとき
"C:\Program Files\Rekisa\Rekisa.exe" -Y+1=%L
-ActiveFile="%2" "%1" "%2" "%3"
例：
比較する３つのファイルのパスを %1, %2, %3 にして、%3 の行番号を
%L にした、Diff を起動するコマンドラインを返す。
i=33 のとき
"C:\Program Files\WinMerge\WinMergeU.exe" "%1" "%2"
例：
→ エディター等の変更 （setting フォルダー）
[ 親: setting フォルダー ]
参考
Diffを実行するコマンドラインを返す
← ▼ ▲
Setting_getAdminUserName
%APPDATA%\Scripts\account_setting.vbs
ファイルを新規作成して下記のように記述してください。
Function Setting_getAdminUserName()
Setting_getAdminUserName = "Administrator"
End Function
Function Setting_getAdminUserName() as string
管理者のユーザー名を返します。
Windows XP で自分が管理者であったり、Windows 7 で管理者になれる
ユーザであれば、関数定義の記述は不要です。
参考
→ setting フォルダに入れる関数の作り方
[ 親: setting フォルダー ]
管理者のユーザー名は、
g_admin
= 1 にしたときに使われます。
← ▼ ▲
Setting_buildTestPrompt
Sub Setting_buildTestPrompt( Prompt as TestPrompt )
テスト・プロンプトの設定を行います。
(src)
→ 設定ファイル TestPrompt_Setting.vbs
→ setting フォルダに入れる関数の作り方
参考
[ 親: setting フォルダー ]
【引数】
Prompt
設定 （TestPrompt_Setting.vbs のサンプルを参照）
→ テスト・プロンプト (Test.vbs)
→ Tests::AddTestScriptAuto
プロンプトのメニュー項目を設定します。
テスト・スクリプト（Test.vbs）を登録します。
← ▼ ▲
Setting_getTemp
Sub Setting_getTemp( out_FolderPath as string, out_LimitDate as Date )
テンポラリ・ファイルやテンポラリ・フォルダーの設定値を取得します。
【引数】
out_FolderPath
out_LimitDate
（出力） テンポラリ・フォルダのパス
（出力） 保存期限
サンプル：
Sub Setting_getTemp( out_FolderPath, out_LimitDate )
out_FolderPath = env( "%Temp%\Report" )
out_LimitDate = DateAdd( "d", -2, Now() ) '// "d" = day
End Sub
DateAdd
下記は、Setting_getTemp を定義していないときと同じ設定です
g_TempFile
テンポラリ・フォルダの設定に関するオブジェクト。
テンポラリ・フォルダに保存するまでは Empty です。
Dim g_TempFile as TempFileClass
Setting_getTemp は、g_TempFile = Empty のときに呼ばれ、呼び出したら、
g_TempFile.m_FolderPath に out_FolderPath に出力したパスが入ります。
env
out_FolderPath や out_LimitDate に値を代入しなかったら、デフォルト値が
使われます。
out_LimitDate 引数に出力した日時より前のタイムスタンプを持つファイルは、
GetTempPath で削除されます。 参考
→ 日付の比較
→ GetTempPath
→ setting フォルダに入れる関数の作り方
参考
[ 親: setting フォルダー ]
テンポラリ・ファイルのパスを返す
← ▼ ▲
GetExistPathInSetting
Function GetExistPathInSetting( Paths as array of string, SettingFuncName as string )
Paths 配列に格納されているパスのうち、最初にファイルが存在するパスを返します。
【引数】
Paths
SettingFuncName
パスの配列
本関数を呼び出している関数の名前
返り値
ファイルが存在するパス
(src)
Paths の要素に Empty を含んでいてもエラーにはなりません。
もし、該当するファイルが存在しなければ、setting フォルダーにある vbs ファイルを修正する
ように、警告が表示されます。
GetExistPathInSetting は、setting フォルダーの中で定義する関数の中から呼び出せる関数です。
[ 親: setting フォルダー ]
サンプル
Function Setting_getEditorCmdLine( i )
paths = Array( _
g_sh.ExpandEnvironmentStrings( "%ProgramFiles%\sakura\sakura.exe" ), _
g_sh.ExpandEnvironmentStrings( "%windir%\notepad.exe" ) )
exe = GetExistPathInSetting( paths, "Setting_getEditorCmdLine" )
→ Setting_getEditorCmdLine のサンプル (src)
← ▼ ▲
EditAndRunScript
Sub EditAndRunScript( ScriptPath as string, IsKeepThisProcessIfRun as boolean )
VBScript ファイルをテキスト・エディターで開いて、編集後に実行します。
【引数】
ScriptPath
IsKeepThisProcessIfRun
VBScript ファイルのパス。 Empty =
False=実行開始したら現在のプロセスを終了する
WScript.ScriptFullName
(src)
サンプル
Sub EditAndRunThisScript()
EditAndRunScript Empty, False
End Sub
本関数を呼び出すと、
Setting_getEditorCmdLine
VBScript ファイル開きます。
に登録したテキスト・エディターを使って
テキスト・エディターを閉じたら、編集した VBScript ファイルを実行するかどうかを確認する
ウィンドウが開きます。 実行するを選んだら、実行を開始して、IsKeepThisProcessIfRun
= False なら、現在実行中のプロセスは終了します。 つまり、新しい VBScript ファイルの
プロセスに切り替わります。 IsKeepThisProcessIfRun = True なら、実行を開始して、
本関数から戻ります。
実行することをキャンセルすると選んだら、そのまま本関数から戻ります。
→ T_EditAndRunScript フォルダ
テスト
← ▼ ▲
ユーザーインターフェース
→ input
→ echo
→ pause
コマンドプロンプト、またはウィンドウにメッセージを表示します。
Enter キーを押すまで待ちます。
プロンプトを表示し、ユーザからのキーボード入力を待ちます。
→ SendKeys
キーボード入力をエミュレーションします。
他にもあります。左のツリーから選択してください。
→ Play
→ SystemSound
音楽ファイルや効果音ファイルを鳴らします。
コントロールパネルに設定されている効果音を鳴らします。
テスト
→ ユーザインターフェースのテスト
→ InputCommand
に入ります。
ショートハンド・プロンプト
← ▼ ▲
echo
Function echo( Message as variant ) as string
コマンドプロンプト、またはウィンドウにメッセージを表示します。
【引数】
Message
表示する内容、またはオブジェクト
echo "はろー"
echo 1+1
サンプル：
Message にオブジェクトを指定した場合、Value プロパティを表示します。
参考
Class ClassX
Public Property Get Value()
関連
→ echo_r
返り値
表示した内容（文字列）
(src)
→ echo_flush
→ EchoOff
→ WScript::Echo
があるときは、出力しません。
サンプル： ファイルとコマンドプロンプトの両方に出力する
Dim out : Set out = OpenForWrite( "_out.txt", Empty )
out.WriteLine echo( "はろー" )
→ GetEchoStr
→ T_Var.vbs # T_LoadEnvVars
テスト
g_CommandPrompt
で、コマンドプロンプトを表示しているときは、コマンド・
プロンプトの中に、そうではないときは、ウインドウに表示します。
echo は、
EchoOff オブジェクト
を使っているときは、Test_logs.txt ファイルにも出力します。
テスト・プロンプト (Test.vbs)
EchoOff オブジェクトがあるときでも出力したいときは、標準出力してください。
例：echo_r "text", ""
今まで echo した内容をウィンドウで表示します。
echo で出力しないようにします。
標準出力かファイルに、文字列を出力します。
VBScript / WSH の標準的な表示関数。
ファイル：
vbslib.vbs
→ GetEchoStr
Message を表示可能な文字列に変換します。
Set obj = new ClassX
echo obj '// obj.xml プロパティを表示する
サンプル：
はろー
2
実行結果：
Dim a
a = 5
echo "a = "& a
a = 5
実行結果：
サンプル：
実行結果：
名前は、太郎です。
Dim name
name = "太郎"
echo "名前は、"+ name +"です。"
サンプル：
サンプル：
Dim name
name = input( "あなたの名前は？>" )
echo name +"さんですね。"
実行結果：
あなたの名前は >次郎
次郎さんですね。
input
echo
← ▼ ▲
echo_flush
Sub echo_flush()
(src)
コマンド・プロンプトを表示していないとき、今まで echo した文字列をウィンドウで表示します。
コマンド・プロンプトを表示しているときは、何もしません。
echo_flush を呼び出さなくても、プログラム終了時、pause、input 時、何度も echo したときは、
ウインドウに自動的に表示します。
参考
→ g_CommandPrompt
コマンドプロンプトを表示するかどうか
echo "注意してください。"
echo_flush
サンプル：
ファイル：
vbslib.vbs
←
↓