我在 Windows 中具有以下文件夹结构:
D:\TV Shows
|
\----Show
| |
| \----S01
| | |
| | \----E01
| | | |
| | | \----E01.rar (contains E01.mkv)
| | \----E02
| | | |
| | | \----E02.rar (contains E02.mkv)
| | \----E03
| | | |
| | | \----E03.rar (contains E03.mkv)
| | ...
| \----S02
| | |
| | \----E01
| | | |
| | | \----E01.rar (contains E01.mkv)
| | \----E02
| | | |
| | | \----E02.rar (contains E02.mkv)
| | \----E03
| | | |
| | | \----E03.rar (contains E03.mkv)
| | ...
...
“D:\TV Shows\Show” 里面有几个不同的文件夹。每个文件夹又包含几个不同的文件夹。每个文件夹都包含一个 rar 文件。
我想通过批处理文件提取所有这些文件,重命名它们并将它们移动到父文件夹。然后,删除包含 rar 文件的文件夹。
期望的结果应该是以下结构
D:\TV Shows
|
\----Show
| |
| \----S01
| | |
| | \----E01.mkv
| | |
| | \----E02.mkv
| | |
| | \----E03.mkv
| | |
| | ...
| \----S02
| | |
| | \----E01.mkv
| | |
| | \----E02.mkv
| | |
| | \----E03.mkv
| | |
| | ...
...
我浏览过几篇类似的帖子,但没有一篇符合我的描述……
这是我尝试过的(它可以工作但不是干净的代码......)
@echo off
for /d %%P in (*) do (
for /d %%D in ("%%P\*") do (
echo Now visiting %%D
@REM extracting
for /f "delims=" %%R in ("%%D\*.rar") do (
"C:\Program Files\7-Zip\7z.exe" x -aos -o"%%~dpR" "%%R"
)
@REM renaming
for /f "delims=" %%M in ("%%D\*.mkv") do (
ren "%%M" "%%D.mkv"
)
@REM moving
for /f "delims=" %%N in ("%%D\*.mkv") do (
move %%N %%P
)
@REM deleting folder
rmdir /q /s %%D
echo.
)
)