(for Internet Explorer)
← ▼ ▲
↑
XmlText
テキストを XML/HTML の実体参照に変換します。
番号またはコマンド >XmlText
-------------------------------------------------------------------------------
テキストを XML/HTML の実体参照に変換します。
1) テキスト → XML/HTML テキストの実体参照 [ToRef]
番号またはコマンド名を入力してください >1
Enter のみ：クリップボードの内容を入力とします。
変換前のテキストが書かれたファイルのパス >
変換しました。
XmlText
1
→ XmlText
関連
連続空白
の置き換えは行いません。
← ▼ ▲
開発サポートツール
RepliCmp
PartRep
テキストファイルの一部を置き換えます。
PartCmp
テキストファイルの一部が同じかどうか比較します。
複数のフォルダで指定した名前のファイルの内容をマージする手助けをします。
vbslib_updater
vbslib を使ったスクリプトをバージョンアップする
Syncs
２つのファイルの同期を自動的に取ります
SearchNewFile
XmlFilter
新しく更新したファイルを探します
XML の一部を取り出します。
vbslib を使って作られたツールです。
vbslib を使うときに役に立つプログラムを参考に挙げます。
→ Rekisa
→ サクラエディタ (Web)
→ Microsoft Script Editor (Web)
→ Microsoft Visual Studio (Web)
→ Snap Note (Web)
→ 構造化エディタ (Web)
MS Office をフルインストールしたときに使えます
スクリプト・デバッガが使えるのは、Standard 以上
vbslib は構造化テキストになっています
ドキュメントからソースコードにジャンプできます
→ 開発環境操作、 Visual Studio
関連
ConvSymbol
C言語の #define から、数値と文字列の配列のコードを生成します。
テキスト比較 diff ツール
テキスト・エディター
[ 親: vbslib のショートハンド・プロンプト ]
← ▼ ▲
CheckEnglishOnly (exeファイル)
テキストファイルが英語だけになっているかチェックします。
チェックするファイルまたはフォルダーのパス: TestData
設定ファイルのパス: TestData\SettingForCheckEnglish.ini
<FILE path="KanjiInUnicode.txt">
<LINE num="2" text="漢字"/>
<LINE num="4" text="です。"/>
<SUMMARY count="2"/>
</FILE>
<FILE path="Sub\SJisInAscii.txt">
<LINE num="2" text="シフトJIS"/>
<LINE num="4" text="です。"/>
<SUMMARY count="2"/>
</FILE>
出力の例：
[CheckEnglishOnlyExe]
ExceptFile = *.exe
ExceptFile = *.lib
ExceptFile = *.dll
; comment
ExceptFile = *\AnyFolder.txt
ExceptFile = Sub\StepPath.txt
ExceptFile = *\SubFolder\*
設定ファイルの例： Setting.ini
CheckEnglishOnly.exe /Folder:FolderA /Setting:Setting.ini
テキスト・ファイルの中に、英文字以外の文字が含まれるファイルを一覧します。
コマンド・プロンプトから実行してください。
【引数】
/Folder
/Setting
チェックするフォルダーのパス
設定ファイルのパス
関連
→ T_CheckEnglishOnly.vbs # T_CheckEnglishOnly
テスト
→ CheckEnglishOnly
vbslib 版
→ scriptlib\vbslib\CheckEnglishOnly フォルダー
→ _src\Test\tools\scriptlib\vbslib\CheckEnglishOnly フォルダー
ソース
→ TranslateTest
→ CheckEnglishOnly_src_121106.zip
実行ファイルまたはソースがある場所：
→ CheckEnglishOnly
コマンド・プロンプト版
* から始まる設定の場合は、すべてのフォルダーに対する設定になります。
相対パスの基準は、設定ファイルがあるフォルダーです。
相対パスの基準は、設定ファイルがあるフォルダーです。
ただし、/Setting オプションがないときは、チェックするフォルダーです。
← ▼ ▲
コールツリー （CheckEnglishOnly）
/Folder:"FolderPath" /Setting:"SettingForCheckEnglish.ini"
CheckEnglishOnly.exe
/* Set "except_names" : 設定ファイルに指定した "ExceptFile" */
→ CheckEnglishOnly.c
e= Set2_alloc( &except_names, &except_name, StrMatchKey );
CheckEnglishOnly
FileT_callByNestFind
/* "path" が、チェックをしないファイル "except_names" に含まれるならスキップする */
ファイル一覧、設定ファイル関係：
Main_getFilePathFromNestFind
if ( StrMatchKey_isMatch( except_name, path ) ) { break; }
/* Set "paths" : チェックするファイルのパスの集合。
if ( IniStr_isLeft( line, _T("ExceptFile") ) ) {
← ▼ ▲
ReplaceSymbolsClass
(src)
Set w_= AppKey.NewWritable( "." ).Enable()
Set rep = new ReplaceSymbolsClass
rep.Load "ReplaceSymbols.xml"
rep.ReplaceFiles
複数のファイルの中の複数の単語（文字列）を一度に置き換えます。
サンプル
参考
→ ReplaceSymbols コマンド
テスト
→ T_ReplaceSymbols フォルダー
ユーザーに確認を求めないときは、rep.IsSubmit = False してください。
← ▼ ▲
Load (ReplaceSymbolsClass)
Sub ReplaceSymbolsClass::Load( XML_Path as string, Config as ReplaceSymbolsLoadConfigClass )
を読み込みます。
【引数】
XML_Path
ReplaceSymbols の設定ファイルのパス
ReplaceSymbols の設定ファイル
[ 親: ReplaceSymbolsClass ]
Config
Empty または、設定
ReplaceSymbolsLoadConfigClass
Class ReplaceSymbolsLoadConfigClass
Public IsReverse '// as boolean
End Class
IsReverse = True なら、Replace タグの from と to を入れ替えて、置き換えます。
← ▼ ▲
ReplaceFiles (ReplaceSymbolsClass)
Sub ReplaceSymbolsClass::ReplaceFiles()
設定に従って、指定した複数のファイルの中の文字列の単語を置き換えます。
[ 親: ReplaceSymbolsClass ]
Load メソッド
設定するには、
を使います。
← ▼ ▲
ConvSymbol
cscript.exe ConvSymbol.vbs /in_type:CDefine /in:file.h /out_type:CLang /out:file.c
/strs_array_name:g_Symbols_strs /ids_array_name:g_Symbols_ids
シンボルを定義しているC言語の #define から、数値と文字列の配列のコードを生成します。
入力ファイル・サンプル：
#define Sym1 10
#define Sym2 11
出力ファイル・サンプル：
TCHAR* g_Symbols_strs[] = {
_T("Sym1"),
_T("Sym2"),
};
int g_Symbols_ids[] = {
10,
11,
};
StrT_convStrToId 関数(clib) を使うと、文字列から数値に変換することができます。
→ StrT_convStrToId
テスト
→ Test_ConvSymbol フォルダ
int id;
TCHAR str[256];
_tcscpy_s( str, _countof(str), _T("Sym1") );
id = StrT_convStrToId( str, g_Symbols_strs, g_Symbols_ids,
sizeof(g_Symbols_strs)/sizeof(*g_Symbols_strs), 0 );
参考
【引数】
in_type
in
CDefine 固定
C言語の #define が書かれたテキスト・ファイルのパス
out_type
CLang 固定
→ ConvSymbol フォルダ
out
数値と文字列の配列の C言語コードの出力先となるファイルのパス
strs_array_name
ids_array_name
文字列の配列の変数名
数値の配列の変数名
Sub ConvSymbol( InPath as string, OutPath as string, Opt as ConvSymbolOption )
Class ConvSymbolOption
Public InType
Public OutType
Public StrsFuncName
Public IDsFuncName
End Class
ConvSymbolOption クラス
ConvSymbolOption
内容は、上記引数と同じ
サンプル・スクリプト：
Set conv_option = new ConvSymbolOption
Set o = conv_option
o.InType = "CDefine"
o.OutType = "CLang"
o.StrsFuncName = "g_Symbols_strs"
o.IDsFuncName = "g_Symbols_ids"
ConvSymbol "file.h", "file.c", conv_option
サンプル
(src)
'//=== make g("OutTableH")
Dim rep, line
Set rep = StartReplace( g("OutTableC"), g("OutTableH"), True )
rep.w.WriteLine "#if __cplusplus"
rep.w.WriteLine " extern ""C"" {"
rep.w.WriteLine "#endif"
rep.w.WriteLine ""
Do Until rep.r.AtEndOfStream
line = rep.r.ReadLine()
If InStr( line, "g_Symbols_strs" ) > 0 or InStr( line, "g_Symbols_ids" ) > 0 Then
rep.w.WriteLine "extern "+ Replace( line, " = {", ";" )
End If
Loop
rep.w.WriteLine ""
rep.w.WriteLine "#if __cplusplus"
rep.w.WriteLine " } // extern ""C"""
rep.w.WriteLine "#endif"
rep.w.WriteLine ""
rep.w.WriteLine "// "+ g("OutTableH") +" was made by """+ WScript.ScriptName +""""
rep.Finish
C ファイルから、ヘッダファイルを作成するスクリプトは、下記のようになります。
← ▼ ▲
TortoiseMerge
テキストの差分を表示するプログラムです。 TortoiseSVN (SubVersion) に付属しています。
→ TortoiseMergeの使い方 - TortoiseSVN (Web)
参考
← ▼ ▲
Rekisa
→ FrozenLib (Web)
開発元
→ Rekisa - ベクターソフトニュース (Web)
関連
テキストの差分を表示するプログラムです。
推奨初期設定
[ 設定 | 比較フィルタ | タブと空白を削除 ] を選択してから、Rekisa を再起動します。
→ サクラエディタとの連携 (Web)
"$(PATH)" -Y=$(Y+1)
サクラエディタで開く(&S)
C:\Program Files\sakura\sakura.exe
[ 設定 | 外部ツール ]
フォルダを開く(&F)
explorer
/SELECT, "$(PATH)"
( -X=$(X+1) は使いにくい）
→ Rekisa - 窓の杜 (Web)
← ▼ ▲
ArgsLog
ArgsLog.exe に指定したパラメーターを、カレント・フォルダーの ArgsLog.txt ファイルに追記出力します。
テスト用です。
テスト プログラムが、テスト対象のプログラム（exe ファイル）を起動する代わりに ArgsLog.exe を起動
したり、テスト対象のプログラムに例えば /ArgsLog オプションを付けることで関数の内部から起動する
exe ファイルを ArgsLog.exe に切り替えたりすることがよくあります。 たとえば、テスト対象のプログラム
がテキスト エディターを起動する関数を呼び出したとき、その関数の中で ArgsLog.exe が起動され、
テキスト エディターが起動したものとしてテストを実施し、起動したコマンドラインについて ArgsLog.txt
ファイルをチェックします。
→ ArgsLog フォルダー
参考
→ ArrayFromCmdLine
関連
→ Diff ツールで開くファイルのパスをテストでチェックするとき
→ テキスト エディターで開くファイルのパスをテストでチェックするとき
→ ログ
← ▼ ▲
エディター等の設定変更 （vbslib 外部プログラム設定、setting フォルダー）
vbslib を使ったスクリプトは、スクリプトがテキスト・ファイルを開くために起動するエディターや、
テキストを比較するツールなどを、「C:\Program Files」 フォルダーを調べて自動的に探します。
setting_default フォルダーや setting フォルダー
なお、設定は、
の PC_setting_default.vbs や
PC_setting_default.vbs
PC_setting.vbs に入っている下記の関数定義です。
vbslib Prompt.vbs
探し方を変更するときは、
の
Setting コマンド
で設定を変更してください。
vbslib が呼び出すユーザー設定関数
の中の .vbs ファイルに、ユーザーが定義する関数です。
setting フォルダー
Setting_getIncludePathes
インクルードする外部 .vbs ファイルのパスの配列を返す。
テキスト エディターのパスを返します。
テキスト比較（Diff）ツールのパスを返します。
PC_setting.vbs
vbs_inc_setting.vbs
Setting_openFolder 関数
フォルダーを開きます。
Setting_getDiffCmdLine 関数
Setting_getEditorCmdLine 関数
Setting_getAdminUserName 関数
管理者のユーザ名を返します。
Setting_onAfterInclude
すべてのモジュールをインクルードした後のコールバック。
Setting_getFolderDiffCmdLine 関数
フォルダー比較（Diff）ツールのパスを返します。
関連
→ ArgsLog
テスト用に、外部プログラムを起動したログを出力する
← ▼ ▲
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\vbslib\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. 5. の順番で実行します。 同じ関数を他の .vbs ファイルでも定義して
いるときは、後で定義したものが優先されます。 4 の setting フォルダーにある設定が最も
例） Setting_getEditorCmdLine 関数
テスト
関連
vbslib
[ 親: setting フォルダ ]
g_vbslib_ver_folder
g_vbslib_ver_folder
Windows 7, 10 ： C:\Users\user1\AppData\Roaming
Windows XP ： C:\Document and Settings\user1\Application Data
2.が設定されていない PC を一時的に使うときのため
vbslib
Xxx_setting.vbs
setting
scriptlib
← setting フォルダー、下記の 1. 2. 3. 4. があるフォルダー
← 設定ファイル
← 5. スクリプトの中の include や ExecuteGlobal
優先されます。 ただし、
include
や
ExecuteGlobal
を呼び出すと定義は変更されます。
5.
ExecuteGlobal
や
include
スクリプトの中の
下記の 1. 2. 3. 4. 5. の順番で実行し、後で定義したものが優先されます。
→ 処理フロー （vbs_inc/setting）
設定ファイルの中では、vbs_inc_sub.vbs ファイルで定義されている関数だけを使用できます。
ソース
1. 2. 3. 4. のファイルがあるフォルダーのパスは、
g_vbslib_setting_paths
にあります。
← ▼ ▲
関数定義の変更方法
include
や
ExecuteGlobal
などを呼び出すと関数定義は変更されます。
setting フォルダー, setting_default フォルダー
Main 関数を呼び出す前に関数定義を変えるには、
に変更後の関数定義が入ったスクリプトを配置します。
Main 関数を呼び出した後は、
変更する前の関数も呼び出すときは、
FuncRedir_add
を使ってください。
テスト スクリプトから呼ばれる関数の定義を変更するときは、include するとよいでしょう。
← ▼ ▲
設定を操作する関数
← ▼ ▲
CheckSettingFunctionExists
Sub CheckSettingFunctionExists( FunctionName as string )
setting フォルダーにあるスクリプトに書くべき関数があることをチェックします。
【引数】
FunctionName
定義されているかどうかをチェックする関数の名前
IsDefined
との違いは、関数が無ければ下記のようなエラーが発生することです。
<ERROR msg="vbslib の setting フォルダーにある .vbs ファイルに関数が定義されてい
ません。" function="Setting_getDiffCmdLine"/>
関連
→ GetExistPathInSetting
ソース
→ vbs_inc_sub.vbs
サンプル
CheckSettingFunctionExists "Setting_getNaturalDocsPerlPath"
natural_docs_path = Setting_getNaturalDocsPerlPath()
設定関数をチェックしてから、呼び出します。
← ▼ ▲
GetExistPathInSetting
Function GetExistPathInSetting( Paths as array of string, SettingFuncName as string )
Paths 配列に格納されているパスのうち、最初にファイルが存在するパスを返します。
【引数】
Paths
SettingFuncName
パスの配列
本関数を呼び出している関数の名前
返り値
ファイルが存在するパス
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)
CheckSettingFunctionExists
の呼び出しも検討してください。
ソース
→ vbs_inc_sub.vbs
← ▼ ▲
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 フォルダ
テスト
← ▼ ▲
Setting_getExistSettingPath
Function Setting_getExistSettingPath( StepPath as string ) as string
に存在する１つのファイルまたはフォルダーのパスを返します。
setting フォルダー
AssertExist g_vbslib_ver_folder + "setting_default"
AssertExist g_vbslib_ver_folder + "setting"
setting_path = Setting_getExistSettingPath( "MySetting.xml" )
If not IsEmpty( setting_path ) Then
'// ...
End If
Assert setting_path = g_vbslib_ver_folder + "setting"
【引数】
StepPath
存在をチェックするファイルまたはフォルダーの相対パス
サンプル
返り値
見つかったファイルまたはフォルダーの絶対パス、または、Empty
g_vbslib_setting_paths
配列にあるフォルダーに、ファイルまたはフォルダーが存在するかどうかを
チェックし、最も優先するパスを返します。 g_vbslib_setting_paths 配列の後の方の要素ほど優先します。
"MySetting.xml"
setting_path
setting フォルダーの２つに MySetting.xml ファイルがあるとき、優先する方のファイルのパスを
setting_path 変数に代入しています。
テスト
ソース
→ T_Setting.vbs
T_Setting_getExistSettingPath
→ vbs_inc_sub.vbs
←
↓