我有几百个文件夹。我的一些文件夹中只有一个文件。如果文件夹只包含一个文件,我想将文件移到目录中,移到它的父文件中,然后删除现在空的文件夹。我希望我能清楚地表达我的问题。我假设最好的方法是使用批处理文件?我在Windows上。
- Root Directory
- Folder 1
- File 1*
- Folder 2
- File 1
- File 2
- Folder 3
- File 1*
- Folder 4
- File 1
- File 2
- File 3
我希望将带有星号的文件移动到根目录。
答案 0 :(得分:0)
这应该会帮助你。关于它正在做什么的几点说明。
您应该会发现多次运行会将单个文件移动到目录树的多个级别 - 如果它是每个级别的唯一文件。
@echo off
setlocal enabledelayedexpansion
for /r /d %%d in (*) do (
for /f %%f in ('dir /b /a-d "%%d\*" 2^>NUL ^| find /c /v ""') do set filecount=%%f
if !filecount! EQU 1 move "%%d\*" "%%~dpd"
for /f %%f in ('dir /b "%%d\*" 2^>NUL ^| find /c /v ""') do set filecount=%%f
if !filecount! EQU 0 rd "%%d"
)