スクリプトの起動元の判定方法を紹介する。
判定方法
WScript.FullName で実行ファイルのパスが取得できる。
WScript.Echo WScript.FullName▼WScript で実行された場合
▼CScript で実行された場合
C:\WINDOWS\system32\cscript.exeこの結果より WScript.FullName からファイル名を取ることで、wscript or cscript が判定できそうだと分かる。
手っ取り早くやるなら、次のように WScript.FullName の末尾から11文字を取得するだけで事足りる。
(念のため小文字に統一)
WScript.Echo LCase(Right(WScript.FullName, 11))もうちょい確実にやるなら FileSystemObject の GetFileName メソッドを使って、ファイル名を取得するのもありだろう。
(こちらも念のため小文字に統一)
With CreateObject("Scripting.FileSystemObject") WScript.Echo LCase(.GetFileName(WScript.FullName)) End With
ファイル名が取得できたら、あとは条件分岐でそれぞれの処理を書くだけ。
Dim name name = LCase(Right(WScript.FullName, 11)) If name = "wscript.exe" Then 'TODO: wscript.exe で実行されたときの処理を書く ElseIf name = "cscript.exe" Then 'TODO: cscript.exe で実行されたときの処理を書く Else 'TODO: 上記以外の処理を書く(ありえないと思うが) End If