У меня есть каталог, который выглядит так

Root Folder
  - Folder A
    - Subfolder
        - File1
        - File2
        - File3
  - Folder B
    - Subfolder
        - File1
        - File2
        - File3
  - Folder C
    - Subfolder
        - File1
        - File2
        - File3

Теперь я хочу переместить подпапку и файлы вверх на уровень и удалить папку после ее перемещения вверх, чтобы она выглядела следующим образом

Root Folder
    - Subfolder
        - File1
        - File2
        - File3
    - Subfolder
        - File1
        - File2
        - File3
    - Subfolder
        - File1
        - File2
        - File3

Есть ли пакетный способ сделать это в Windows?

1 ответ1

0

Если для «Папки [a | b]» существует шаблон, который не дублируется в именах "вложенных папок", то да, это довольно простой пакетный скрипт.

for /d %%d in ("folder*") do call :doit "%%d"
exit /b

:doit
@echo.Moving contents of "%~1" to "%cd%"...
pushd "%~1"
forfiles /c "cmd /c move @file .."
popd
@echo.Removing "%~1"
rd "%~1"
exit /b

Опять же, очень важно понимать, что для этого требуется шаблон имен папок («папка *»). Если это размножается в папках контента , то вы потеряете данные.

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