【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

処理内容

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

  • 1.親フォルダを作成し、作成した日付を末尾につける(フォルダ名:hogehoge_yyyyMMdd)
  • 2.子フォルダを作成(フォルダ名:hogehoge1~4)

フォルダが既に存在する際には「フォルダ名 is exists」とポップアップ通知で知らせるようにしています。
また、子フォルダの名前はそれぞれ同じ名前+項番という形式になります。

実行結果

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

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

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

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

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

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

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

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

コメント

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