(for Internet Explorer)
← ▼ ▲
↑
AssertValue
→ T_Value.vbs # [T_AssertValue]
Sub AssertValue( Name as string, TestValue as variant, PassValue as variant,
CompareOption as interger )
値が範囲内であるかどうかをチェックし、範囲外なら詳細なメッセージを付けてエラーにします。
【引数】
Name
TestValue
値の名前、エラーメッセージ用
チェック対象の値
PassValue
範囲
CompareOption
比較オプション
AssertValue "EqualNumber", a, 1, Empty
サンプル
a = 1 であるかチェックします。
テスト
AssertValue "Str", a, Array( "A", "ABC" ), c.CaseSensitive
a = "A" または a = "ABC" であるかチェックします。
AssertValue "RangeNumber", a, Array( 1, 3 ), c.Range
1 ≦ a ≦ 3 であるかチェックします。
ソース
→ vbslib.vbs
← ▼ ▲
AssertString
関連
→ GetDiffStringCmdLine, GetDiffStringCmdLine3
AssertString "ABC", "AxC"
Sub AssertString( TestString as string, AnswerString as string, Option_ as integer )
文字列が等しいことをチェックし、異なっていたら文字列を比較する Diff ツールを開きます。
【引数】
TestString
AnswerString
テストする文字列
答の文字列
Option_
サンプル
c.CaseSensitive
Empty または
ソース
→ TestScript.vbs
文字列に含まれるすべての文字の文字コードも Diff ツールで比較します。
→ new_BinaryArrayAsText
← ▼ ▲
AssertD_TypeName
Sub AssertD_TypeName( in_Value as variant, in_TypeName as string )
値の型の名前をチェックします。 （デバッグ時のみ）
【引数】
in_Value
in_TypeName
チェックする値
型やクラスの名前
→ vbslib.vbs
ソース
g_is_debug
が 0 のときは、何もしません。 高速化のため。
AssertD_TypeName self, "SampleClass"
サンプル
型名をソースのコメントに書くときよりは信頼できるようになります。
← ▼ ▲
ErrorValue
ErrorValue "Sample", 1
Sub ErrorValue( Name as string, Value as Variant )
問題がある値をメッセージに含めたエラーを発生させます。
【引数】
Name
Value
値の名前
問題がある値
サンプル
<ERROR msg="値が想定外です" name="Sample" now_value="1"/>
スクリプトの例
上記スクリプトを実行した時のエラーメッセージ
ソース
→ vbslib.vbs
← ▼ ▲
その他
→ ConvertToFullPath
テキストファイルの中の相対パスをフル・パスに変換します。
← ▼ ▲
性能計測
→ BenchStart
参考
← ▼ ▲
開発環境操作
Visual Studio のソリューションをビルドします
→ devenv_clean
Visual Studio のソリューションをクリーンします
→ devenv_rebuild
→ devenv_build
Visual Studio のソリューションをリビルドします
→ devenv_ver_name 環境変数
関連
→ Module Mixer 3
VisualStudio.vbs
ファイル：
→ T_devenv フォルダ
テスト
Visual Studio 2005〜2010 を操作します。
→ MSBuild
← ▼ ▲
devenv_rebuild
Sub devenv_rebuild( SlnPath as string, ConfigName as string )
Dim ds_:Set ds_= new CurDirStack
pushd "src"
devenv_rebuild "sample.sln", "Release"
popd
【引数】
→ Devenv コマンド ライン スイッチ (Web)
→ コマンドライン・コンパイル
(src)
→ devenv_ver_name 環境変数
devenv_rebuild "src\sample_%devenv_ver_name%.sln", "Debug"
Visual Studio のソリューションをリビルドします。
SlnPath
ConfigName
ソリューション・ファイルのパス(.sln)
設定名（"Release"など）
ソリューション・ファイルに書かれたバージョン情報を元に、
コンパイラのバージョンを自動的に選択します。
ビルドに失敗したら、E_BuildFail エラーになります。
参考
devenv_rebuild "sample.sln", "Release|x64"
Release|x64 が使えるかどうかは、.sln ファイルをテキストファイル
で開いて、そのコンフィグがあるかどうかで判断してください。
テスト
→ T_devenv.vbs # [T_devenv_build]
→ T_devenv.vbs # [T_devenv_build_MultiFolder]
ソース
→ VisualStudio.vbs
サンプル
← ▼ ▲
devenv_build
Sub devenv_build( SlnPath as string, ConfigName as string )
Visual Studio のソリューションをビルドします。
(src)
参考
→ devenv_rebuild
← ▼ ▲
devenv_clean
Dim ds_:Set ds_= new CurDirStack
pushd "src"
devenv_clean "sample.sln"
popd
Sub devenv_clean( SlnPath as string )
サンプル：
Visual Studio のソリューションをクリーンします。
【引数】
SlnPath
ソリューション・ファイルのパス(.sln)
(src)
→ devenv_ver_name 環境変数
参考
テスト
→ T_devenv.vbs # [T_devenv_build_MultiFolder]
← ▼ ▲
devenv_upgrade
Sub devenv_upgrade( SlnPath as string, Opt as Empty )
Dim ds_:Set ds_= new CurDirStack
pushd "src"
devenv_upgrade "sample.sln", Empty
popd
サンプル：
Visual Studio のソリューション・ファイルを新しい Visual Studio 用に変換します。
【引数】
SlnPath
古い Visual Studio のソリューション・ファイルのパス(.sln)
→ devenv_ver_name 環境変数
新しいバージョンとは、現在の PC にインストールされている Visual Studio のうち、
最も新しいバージョンのことです。
→ /Upgrade (devenv.exe) (Web)
参考
Opt
Empty または、c.MakeBackup
Opt に、c.MakeBackup を指定すると、変換前のファイルのバックアップを作成します。
ただし、c は、get_VisualStudioConsts の返り値です。
(src)
→ To the command line enthusiasts Some quick know-hows for Upgrading to VS 2010 (Web)
← ▼ ▲
get_VisualStudioConsts
Function get_VisualStudioConsts() as Object
VisualStudio.vbs で使う定数の集合。
サンプル：
Dim c : Set c = get_VisualStudioConsts()
'// c.MakeBackup
(src)
← ▼ ▲
devenv_ver_name 環境変数
devenv_rebuild "src\sample_%devenv_ver_name%.sln", "Release"
devenv_rebuild, devenv_clean などに指定する .sln ファイルのパスには、
%devenv_ver_name% を指定することができます。
インストールされている Visual Studio に応じて、次の文字列に変換されます。
Visual Studio 2015 … "vs2015"
Visual Studio 2013 … "vs2013"
Visual Studio 2012 … "vs2012"
Visual Studio 2010 … "vs2010"
Visual Studio 2008 … "vs2008"
Visual Studio 2005 … "vs2005"
複数の Visual Studio がインストールされているときは、デフォルトでは最新のものが設定されますが、
PC の環境変数や、SetVar で devenv_ver_name を設定することで、バージョンを選択できます。
get_DevEnvObj
echo "Default: " + GetVar( "%devenv_ver_name%" )
GetVar や env で、devenv_ver_name 環境変数の値を取得するときは、その前に
get_DevEnvObj を実行してください。
(src)
テスト
→ [T_devenv]
→ devenv_ver_name 環境変数
関連
get_DevEnvObj
devenv_ver_name
← ▼ ▲
devenv_platform 環境変数
devenv_platform 環境変数の値は、"" (Win32 or x86) または "x64\" です。
初期値は、"" です。 "" 以外のときは、末尾に \ を付けてください。
64bit アプリケーションをビルドするときは、"x64\" を設定してからビルドしてください。
set_ "devenv_platform", "x64\"
devenv_build "Example.sln", "Release"
Assert exist(env("sample sln\%devenv_platform%Release\Example.exe"))
サンプル
%devenv_platform%
← ▼ ▲
IsVisualStudioInstalled
Function IsVisualStudioInstalled( VersionNum as integer, IsExpress as boolean ) as boolean
【引数】
指定したバージョンの Visual Studio がインストールされているかどうかを返します。
VersionNum
バージョン番号
IsExpress
Express 版かどうか
(src)
インストールされているかどうか
返り値
← ▼ ▲
GetVisualStudioVersionNum
Function GetVisualStudioVersionNum( VersionString as string ) as integer
Visual Studio のバージョン文字列（例："vs2008"）を数値（例：2008）に変換します。
(src)
← ▼ ▲
GetSlnFileVersion
Sub GetSlnFileVersion( SlnPath as string, out_VersionNum as integer,
out_IsExpress as boolean )
指定のソリューション・ファイルが使える Visual Studio のバージョンを返します。
【引数】
SlnPath
Visual Studio のソリューション・ファイルのパス(.sln)
out_VersionNum
（出力） バージョン番号。 2012, 2010, 2008, 2005
(src)
out_IsExpress
（出力） Express 版かどうか
← ▼ ▲
VisualStudioSlnClass
Visual Studio の *.sln ファイルを読み込みます。
(src)
テスト
→ T_devenv.vbs # [T_devenv_SlnLoad]
Load
してから
や
Projects
ConfigurationPlatforms
にアクセスしてください。
← ▼ ▲
Load (VisualStudioSlnClass)
Sub VisualStudioSlnClass::Load( SlnFilePath as string )
Visual Studio の *.sln ファイルを読み込みます。
【引数】
SlnFilePath
*.sln ファイルのパス
(src)
← ▼ ▲
Projects (VisualStudioSlnClass)
Dim VisualStudioSlnClass::Projects as ArrayClass of VisualStudioSlnProjectClass
ソリューションの中にあるプロジェクトの一覧。
VisualStudioSlnProjectClass
Load
してからアクセスしてください。
← ▼ ▲
VisualStudioSlnProjectClass
Class VisualStudioSlnProjectClass
Public ProjectName '// as string
Public RelativePath '// as string
Public ProjectGuid '// as string
End Class
(src)
→ VisualStudioSlnClass
参考
← ▼ ▲
ConfigurationPlatforms (VisualStudioSlnClass)
Dim VisualStudioSlnClass::ConfigurationPlatforms
as ArrayClass of VisualStudioSlnConfigurationPlatformClass
ソリューションの中にあるコンフィギュレーションとプラットフォームの一覧。
Load
してからアクセスしてください。
VisualStudioSlnConfigurationPlatformClass
← ▼ ▲
VisualStudioSlnConfigurationPlatformClass
Class VisualStudioSlnConfigurationPlatformClass
Public Configuration '// as string. "Debug", "Release"
Public Platform '// as string. "Win32", "x86", "x64"
End Class
→ VisualStudioSlnClass
参考
← ▼ ▲
DeleteProjectInVisualStudioSln
Sub DeleteProjectInVisualStudioSln( SlnFilePath as string, ProjectNameh as string )
Visual Studio の *.sln ファイルの中にある１つのプロジェクトを削除します。
【引数】
SlnFilePath
ProjectNameh
*.sln ファイルのパス
削除するプロジェクトの名前
VisualStudioSlnProjectClass::ProjectName
(src)
テスト
→ T_devenv.vbs # [T_devenv_DeleteProjectsInSln]
プロジェクトの名前は、
から参照できます。
← ▼ ▲
その他
→ C言語
← ▼ ▲
インストール、レジストリ、OS
→ レジストリ (VBS)
レジストリのサブキーを列挙します。
→ RegEnumValues
指定のレジストリ・キーに入っている値を列挙します。
→ RegExport
レジストリ・キーの値を .reg ファイルに出力します。
→ RegWrite
ファイルをダブルクリックしたときに開くプログラムを設定します。
ファイルの右クリック・メニューの１つの項目を追加します。
レジストリにライトします。
→ RegExists
指定のレジストリ・キーか値が存在するかどうかを判定します。
→ バージョン判定、環境変数
→ Shutdown
PC の電源を切ります。
→ RegEnumKeys
→ RegRead
レジストリからリードします。
→ InstallRegistryFileOpen
→ InstallRegistryFileVerb
関連
他にもあります。左のツリーから選択してください。
← ▼ ▲
Shutdown
Sub Shutdown( Operation as string, CountDownTimeSec as integer )
PC の電源を切ります。
【引数】
Operation
CountDownTimeSec
電源の切り方（下記）
電源を切るまでの時間（秒）
(src)
[ 親: システム、OS、レジストリ ]
RunProg "cscript main_child.vbs", ""
Shutdown Empty, Empty
Function Setting_getShutdownOperation()
Setting_getShutdownOperation = "PowerOff"
End Function
Function Setting_getShutdownCountDownTimeSec()
Setting_getShutdownCountDownTimeSec = 60
End Function
main_child が終了したらデフォルト設定で電源を切る。
30秒後にスリープする
Shutdown "Sleep", 30
デフォルト設定は、
setting フォルダ
に下記の関数の定義によって設定します。
関数定義がないときは、"PowerOff", 60 になります。
Shutdown 関数を呼び出すと、カウントダウンを始め、下記のウィンドウが開きます。
ただし、CountDownTimeSec = 0 のときは開きません。
テスト
Operation 引数
次のいずれかの文字列を指定できます。
"PowerOff", "Reboot", "Hibernate", "Sleep", "Standby"
[OK] を押せば、すぐに電源を切ります。
[キャンセル]を押すか、VBScript の
コンソールを閉じると、電源を切らなく
なります。
→ T_Shutdown_Manually.vbs
スリープするときは、scriptlib\vbslib_XXX\SetSuspendState フォルダが必要です。
Sleep と Standby は同じです。
Windows 8 タブレットのコネクテッド・スタンバイ には対応していません。
それぞれの OS のバージョンで行うこと
エラーが発生しても、電源を切るには、
RunProg などで、メイン処理を行う子プロセス
を起動して、子プロセスが終了する（RunProg から戻る）まで待ってから、Shutdown
を実行してください。 こうすれば、Ctrl-C や閉じるボタンが押されても電源が切れます。
通常 60秒後にシャットダウンします。
サンプル
音楽を鳴らしながら、60秒待ち、スリープする
g_CommandPrompt = 1 '// この行だけ SetupVbslibParameters に記述
Sub main()
Play "******.mp3"
Dim e ' as Err2
If TryStart(e) Then On Error Resume Next
Shutdown "Sleep", 60
If TryEnd Then On Error GoTo 0
e.Clear '// ユーザ・キャンセルしてもウィンドウを閉じるため
End Sub
このスクリプトを、Windows のタスクに登録しておくと、１時間ごとにスリープに入ることを
試みるようなことができます。
参考
→ タスク （Windows でのスケジュール実行）
Windows 7 では、地デジの予約録画などによる、
「半スリープ状態」
から、
Shutdown "Sleep" してもスリープ状態になりません。
wakeonlan : 無停電 Linux サーバーから別の PC の電源を入れる
wakeonlan <電源を入れるPCのMACアドレス>
まず、電源を入れる PC の準備をします。
/usr/bin/net rpc -S <マシン名> -U <アカウント名>%<パスワード> shutdown -t 10
<アカウント名> は、<ユーザ名> または <ドメイン名>\\<ユーザ名>
vbslib Prompt.vbs の Shutdown
電源を落とすには、リモート・デスクトップ経由で、コマンドプロンプトから
を実行するか、無停電 Linux サーバー
から下記のコマンドを入力してください。
Windows XP の場合、
[ スタート > マイコンピューター ] を右クリック [ プロパティ > ハードウェア > デバイス
マネージャ ] から、ネットワーク アダプタの子ノードの中から該当するアダプタを
右クリック [ プロパティ ]、[ 詳細設定 > Wake Up Capabilities ] を [ Magic Packet ]、
[ 電源の管理 > このデバイスで、コンピュータのスタンバイ状態を解除できるように
する ] にチェックします。
PC の電源を切ってから、再度電源を入れてすぐに BIOS の設定画面を開き（機種
依存です。例：F2を押す）、Wake On LAN を有効にします（例：Power > Automatic
Power On > Wake on LAN = Primary）
『無停電の Linux サーバー』 にログインして、wakeonlan コマンドを実行します。
なお、MAC アドレスは、コマンドプロンプトから ipconfig /all を実行すると分かります。
./wakeonlan 11:22:33:44:55:66
例：
shutdown /s /f
を実行するか、
ソース
→ vbslib.vbs
→ SetSuspendState フォルダー
サンプル
サンプル
補足
← ▼ ▲
IsScreenSaverRunning
(src)
[ 親: システム、OS、レジストリ ]
Function IsScreenSaverRunning() as boolean
スクリーンセーバーが動いているかどうかを返します。
→ T_ScreenSaver_Manually.vbs # [T_IsScreenSaverRunning]
テスト
← ▼ ▲
RegEnumKeys
Sub RegEnumKeys( Path as string, out_Keys as array of string, Opt as integer )
レジストリのサブキーを列挙します。
【引数】
Path
out_Keys
レジストリのキーのパス
（出力） サブキーのフルパスの配列。 末尾に \ は無い
ファイル：
System.vbs
Dim keys
RegEnumKeys "HKEY_CURRENT_USER\Software\_Test", keys, Empty
'// keys(0) = "HKEY_CURRENT_USER\Software\_Test\Sub"
'// keys(1) = "HKEY_CURRENT_USER\Software\_Test\Sub2"
サンプル：
Opt
オプション。 Empty か F_SubFolder
[ 親: システム、OS、レジストリ ]
(src)
サブキーが無いときは、UBound( out_Keys ) = -1 になります。
Path の末尾に \ があってもなくても、キー（フォルダーのようなもの）を指定したことに
なります。
テスト
→ T_Reg.vbs
T_Reg1
←
↓