我有一个像这样的目录
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
再次强调非常重要的是要理解这需要文件夹名称的模式(“文件夹*”)。如果这在您的内容文件夹中复制,那么您将要丟失數據。