Você poderia usar o PowerShell para isso. Ainda não testei o método abaixo, mas deve funcionar.
- Crie um arquivo CSV na raiz da pasta que você deseja iniciar.
- É melhor usar o Excel ou outro editor de planilhas e o CSV "salvo como" delimitado por vírgulas.
- Nomeie o arquivo
FolderNames.csv
- Crie duas colunas, com os cabeçalhos
Name
eType
- Coloque o nome de cada pasta do painel na coluna Nome, com
Folder
na coluna Tipo. - Coloque o nome de cada pasta Produtos (apenas uma vez em cada, não para cada combinação Painel / Produtos) na coluna Nome, com
Subfolder
na coluna Tipo.
- Abra um novo console do PowerShell.
- Navegue até a pasta que contém
FolderNames.csv
- Execute o seguinte comando:
$Folders=Import-Csv FolderNames.csv;$Folders|?{$_.Type-eq'Folder'}|%{$ParentName=$_.Name;New-Item "$ParentName" -ItemType Directory;$Folders|?{$_.Type-eq'Subfolder'}|%{$ChildName=$_.Name;New-Item "$ParentName\$ChildName" -ItemType Directory}}
O comando acima é realmente um script condensado em um one-liner (um tanto longo). Aqui está uma versão expandida e comentada:
# Import FoldersNames.csv into a variable called $Folders
# This will create an array of objects which have the Name and Type properties as defined in the CSV.
$Folders=Import-Csv FolderNames.csv;
# Filter $Folders down to just objects with a Type value of 'Folder'.
# ? is a built-in alias for Where-Object.
$Folders|?{$_.Type-eq'Folder'}|
# Send the filtered objects into a ForEach-Object loop.
# % is a built-in alias for ForEach-Object.
%{
# Store the current object's Name in $ParentName.
$ParentName=$_.Name;
# Create a new directory named $ParentName.
New-Item "$ParentName" -ItemType Directory;
# Filter $Folders down to just objects with a Type value of 'Subfolder'.
$Folders|?{$_.Type-eq'Subfolder'}|
# Send the filtered objects into a ForEach-Object loop.
%{
# Store the current object's Name in $ChildName.
$ChildName=$_.Name;
# Create a new subfolder in $ParentName called $ChildName.
New-Item "$ParentName\$ChildName" -ItemType Directory
}
}
Note que esta solução não é muito escalável como está. Se você precisar criar camadas mais profundas de subpastas ou colocar subpastas diferentes em determinadas pastas, dependendo do nome, não será realmente simples adaptar esse script às suas necessidades. No entanto, deve servir ao propósito descrito na sua pergunta.