批量移动子文件夹和文件至上一级

批量移动子文件夹和文件至上一级

我有一个像这样的目录

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

如果“文件夹 [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

再次强调非常重要的是要理解这需要文件夹名称的模式(“文件夹*”)。如果这在您的内容文件夹中复制,那么您将要丟失數據。

相关内容