我有数百个文件夹,其结构如下:
PARENT\FolderA\Subfolder01\files1.iso
PARENT\FolderB\Subfolder02\files2.iso
PARENT\FolderC\Subfolder03\files3.iso
我想将所有files1.iso
,files2.iso
,files3.iso
分别上移一个级别。应该看起来像这样。
PARENT\FolderA\files1.iso
PARENT\FolderB\files2.iso
PARENT\FolderC\files3.iso
更好的方法是删除不需要的Subfolder01
,Subfolder02
,Subfolder03
。
如果可能的话,还可以将那些files1.iso
,files2.iso
,files3.iso
重命名为FolderA.iso
,FolderB.iso
,FolderC.iso
分别。
我真的不知道如何解决这个问题。有人可以帮忙吗?
答案 0 :(得分:1)
cd PARENT
for /D %%i in (*) do (
for /D %%j in (%%i\*) do (
move "%%j\*" "%%i\%%i.iso" 2>&1>nul && rmdir "%%j" 2>&1>nul
)
)
说明:
cd PARENT
只需确保您在根目录下即可正常工作,因此其余工作正常
for /D %%i in (*) do (
这是一个for循环,对于工作目录中的每个目录,它都将%% i设置为目录名称(例如FolderA),然后执行以下操作:
for /D %%j in (%%i\*) do (
这是一个嵌套的for循环,对于%% i中的每个目录(在第一个循环中,FolderA),它将%% j设置为目录名(在第一个循环中,FolderA \ Subfolder01),然后执行以下操作:>
move "%%j\*.iso" "%%i\%%i.iso" 2>&1>nul && rmdir "%%j" 2>&1>nul
将名称在%% j(FolderA \ Subfolder01)中以.iso
结尾的所有内容移动到%% i(FolderA),并将其重命名为%% i.iso(FolderA.iso)。如果可行,请删除%% j目录。将所有输出重定向到nul
(即不产生任何输出)。
)
)
关闭循环。