【vbs】複数階層のフォルダを作成する方法

VBS VBS

複数階層のフォルダを一気に作成するVBSスクリプトを作成してみました。

特定のフォルダを子フォルダごと作成するスクリプトがあってワンクリックで実行できたら楽だな」と思ったのがきっかけで試してみました。

広告

複数階層のフォルダを作成するスクリプト

以下の内容を記載したvbsファイルを実行させることで複数階層のフォルダを作成することができます。

Dim FSO
Dim Folder
Dim Message
Dim Date_yyyy
Dim Date_MM
Dim Date_dd
Dim FolderName
Dim Path
Dim CreatePath

Date_yyyy = Left(Date(), 4)
Date_MM = Mid(Date(), 6, 2) 
Date_dd = Right(Date(), 2) 

Date_full = Date_yyyy & Date_MM & Date_dd

Folder = "hogehoge_"

FolderName = Folder & Date_full

Path = "C:\hogehoge\"

CreatePath = Path & FolderName

Set FSO = WScript.CreateObject("Scripting.FileSystemObject")

'同名のフォルダがあるかどうかを判定
if FSO.FolderExists(CreatePath) = True Then
    Message = FolderName + " is exists"
    msgbox Message
else
    FSO.CreateFolder(CreatePath)
    if Err.Number = 0 Then
        Message = "Created " & FolderName
        msgbox Message
    else
        Message = "Error : " & Err.Description
        msgbox Message
    end if

    '子フォルダの作成
    Dim ChildFolderName
    Dim CreateChildFolderPath
    Dim i

    Path = "C:\hogehoge\" & FolderName

    for i = 1 to 4
        ChildFolderName = "hogehoge" & CStr(i)
        CreateChildFolderPath = CreatePath & "\" & ChildFolderName

        FSO.CreateFolder(CreateChildFolderPath)
    next
end if

処理内容

処理内容としては以下のようになります。

作成したフォルダ名[hogege]にvbsを実行した日付を末尾につけた名前になる親フォルダを作成し(hogehoge_yyyyMMdd)、子フォルダの名前は固定化されたもの(hogehoge1~4)を作成。

また、フォルダが既に存在する際には「フォルダ名 is exists」とポップアップ通知で知らせるようにしています。

広告

実行結果

親フォルダが存在しない状態での実行結果

ポップアップ上で「Created hogehoge_yyyyMMdd」と表示され、フォルダが作成されたことが確認できます。

また、作成されたフォルダの中にスクリプト内で定義した子フォルダも作成されていることも確認できます。

実行前のhogehogeフォルダにはフォルダが存在しない
フォルダが存在しない状態の実行(実行途中)
フォルダがない状態の実行後の結果

親フォルダが存在する状態での実行結果

ポップアップ上で「hogehoge_yyyyMMdd is exists」と表示されます。

フォルダが既に存在する状態での実行結果

今回は親フォルダが既にあった時点でスクリプトは実行終了するので子フォルダの有無は確認していません。

コメント

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