Вы можете использовать PowerShell для этого. Я еще не тестировал приведенный ниже метод, но он должен работать.
- Создайте файл CSV в корне папки, с которой вы хотите начать.
- Лучше всего использовать Excel или другой редактор электронных таблиц и CSV с разделителями-запятыми "Сохранить как".
- Назовите файл
FolderNames.csv
- Сделайте два столбца с заголовками
Name
и Type
- Поместите имя каждой папки Panel в столбец "Имя", а «
Folder
в столбец "Тип".
- Поместите имя каждой папки "Продукты" (только один раз, а не для каждой комбинации «Панель / Продукты») в столбце "Имя" с
Subfolder
в столбце "Тип".
- Откройте новую консоль PowerShell.
- Перейдите в папку, содержащую
FolderNames.csv
- Запустите следующую команду:
$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}}
Приведенная выше команда на самом деле представляет собой сценарий, сжатый в несколько длинную строку. Вот расширенная и прокомментированная версия:
# 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
}
}
Обратите внимание, что это решение не очень масштабируемо как есть. Если вам нужно создать более глубокие слои подпапок или поместить разные подпапки в определенные папки в зависимости от их имени, адаптировать этот сценарий к вашим потребностям будет непросто. Однако это должно служить цели, изложенной в вашем вопросе.