FOR /D %%V in ("C:\FOLDER\\SUBFOLDER\\*") DO (
md %%V\\"subfolder01"
md %%V\\"subfolder02"
md %%V\\"subfolder03"
)
Echo "DONE!"
パスが深すぎるか、フォルダ名にスペースや「-」などの「特殊文字」が多く含まれているためにこれが機能しない場合は、次のいずれかを行う必要があります。a
)ターゲット フォルダを同じドライブ(名前を「aaa」などに変更することもできます)、上記のバッチでパスを変更し、それを実行してフォルダーを元の場所に戻す
か、
b) Windowsバッチの代わりにVBスクリプトを使用します:
Option Explicit
Dim myFolder, mySubs
myFolder="C:\folder\subfolder"
mySubs="foo,uncleFoo"
Call AddSubFolders(myFolder,mySubs)
Call MsgBox ("Done!")
Sub AddSubFolders(targetFolder,subFolderList)
Dim FSO, targetF, subF, subSubF
Dim sFoldList, iC
sFoldList = Split(subFolderList, ",")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set targetF = FSO.GetFolder(targetFolder)
Set subF = targetF.SubFolders
For Each subSubF in subF
For iC = 0 To Ubound(sFoldList)
Call FSO.CreateFolder(subSubF & "\" & sFoldList(iC))
Next
Next
Set subF = Nothing
Set targetF = Nothing
Set FSO = Nothing
End Sub
ファイルを作成し、「runme.vbs」などの名前を付け、上記のコードをコピーして貼り付け、「myFolder」の値を実際のターゲット フォルダーの名前に変更し、「mySubs」の値をフォルダー名のカンマ区切りのリストに変更します。サブフォルダーとして追加して実行したい