引数で渡されたオブジェクトがファイルかフォルダかを判定する部品をご紹介します。
ファイルとフォルダで異なる戻り値を返すので、戻り値を元に条件分岐させて異なる処理を実行するなどが可能となります。
仕様
本スクリプトの仕様になります。
・スクリプト名:CheckFileOrFolder.vbs
・引数1:ファイルまたはフォルダのフルパス
・戻り値:引数1がファイル(0)、フォルダ(1)、エラー(99)
ソースコード
ソースコードになります。
Option Explicit
Dim args, fso
Set args = WScript.Arguments
If args.Count <> 1 Then
WScript.Echo "Usage:" & WScript.ScriptName & " 【入力情報が読み込めません。】"
WScript.Quit (99)
End If
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(args(0)) Then
WScript.Quit (0)
ElseIf fso.FolderExists(args(0)) Then
WScript.Quit (1)
Else
WScript.Quit (99)
End If
Set fso = Nothing
Set args = Nothing
使用方法
本スクリプトの使用方法になります。
基本的には別のスクリプトから呼び出します。
以下は、呼び出し元のスクリプトのサンプルになります。
Option Explicit
' ファイル、フォルダを判定する対象
Const TARGET_PATH = "C:\workspace\VBScript"
' ファイル、フォルダ判定部品の格納パス
Const CHECK_FILE_OR_FOLDER = "D:\Tool\VBScript\CheckFileOrFolder.vbs"
' 宣言
Dim wsh, rc
' WSHオブジェクトの作成
Set wsh = CreateObject("WScript.Shell")
' ファイル、フォルダ判定部品の呼び出し
rc = wsh.Run (CHECK_FILE_OR_FOLDER & " " & TARGET_PATH, , True)
' 実行結果の確認
If (rc = 0) Then
MsgBox("戻り値【" & rc & "】ファイルです。")
ElseIf (rc = 1) Then
MsgBox("戻り値【" & rc & "】フォルダです。")
Else
MsgBox("戻り値【" & rc & "】エラーです。")
End If
' WSHオブジェクトの破棄
Set wsh = Nothing
上記を実行すると、引数で渡した判定する対象によって、以下のメッセージが表示されます。
判定する対象が
ファイルの場合、「戻り値【0】ファイルです。」
フォルダの場合、「戻り値【1】フォルダです。」
存在しないパスの場合、「戻り値【99】エラーです。」
とメッセージボックスで表示されます。
記事は以上です。簡単なスクリプトですが良ければご利用下さい。
本スクリプトで使用している別のスクリプトの呼び出しなど、VBScriptの書き方は下記を参考にして頂ければと思います。リファレンスもありますのでそちらもどうぞ。
リンク





コメント