【VBScript】コピペでOK!ファイル、フォルダ判定部品


この記事はプロモーションを含みます。

VBScript

ホーム > VBScript 逆引きリファレンス

引数で渡されたオブジェクトがファイルかフォルダかを判定する部品をご紹介します。
ファイルとフォルダで異なる戻り値を返すので、戻り値を元に条件分岐させて異なる処理を実行するなどが可能となります。

仕様

本スクリプトの仕様になります。

・スクリプト名: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の書き方は下記を参考にして頂ければと思います。リファレンスもありますのでそちらもどうぞ。

コメント

タイトルとURLをコピーしました