-1

Мне нужно, чтобы все подпапки в дереве каталогов были сведены в один слой папок, а все файлы остались в папке. например:

inside parent folder: -folderA -folderB -file1 -file2 -file3 -folderC -file1 -file2 -file3

к этому:

inside parent folder: folderA -file1 -file2 -file3 folderB -file1 -file2 -file3 folderC

Я могу сделать это вручную, показывая путь к папке и расширяя все, затем перетаскивая одну папку за раз в родительскую папку. Проблема в том, что мне нужно пройти более 25 000 папок, и команда для этого сэкономит немало человеко-часов и ускорит проект. Я видел много вопросов, требующих, чтобы все файлы были извлечены в родительскую папку, но мне нужно, чтобы они были отделены друг от друга и все еще находились в соответствующих папках для целей аудита, поскольку каждый файл помечен именем папки, в которой он был изначально сохранен.

1 ответ1

0

Простой пример скрипта PowerShell может выглядеть так:

Get-ChildItem -Directory -Recurse -Path . | %{
    Move-Item $_ C:\Path\To\Parent
}

Это не будет следить за конфликтами имен, и я не уверен, что будет поведение по умолчанию. С 25.000 папками вполне вероятно, что вы столкнетесь с дублирующимися именами.

Это также предполагает, что ваш график неверен. Исходное предложение означает, что вы сгладите его после перемещения каждого файла на один слой вверх.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .