【发布时间】:2015-03-20 22:40:18
【问题描述】:
尝试组织节目 *.nfo 文件,使它们与匹配的 mkv 同名(编辑:avi woops 不会真正更改代码)。
Test Folder:
76107.2.1.nfo
76107.2.2.nfo
76107.2.3.nfo
Doctor Who - S02E01 (009) - Planet of Giants (1) - Planet of Giants.avi
Doctor Who - S02E01 (009) - Planet of Giants (2) - Dangerous Journey.avi
Doctor Who - S02E01 (009) - Planet of Giants (3) - Crisis.avi
现在 76107.2.*.nfo 中的剧集编号在后面的文件夹中是错误的,测试文件夹中的相似性只是因为它是本季的第一季。所以我不能简单地比较名称以匹配它们,但它们的顺序正确,所以我尝试使用计数器将第一个 *.nfo 重命名为与第一个 *.avi 相同,然后将第二个 *.nfo 重命名为与第二个 *.avi 相同,依此类推!
我制作了一个我认为应该可以工作的脚本,但它什么也没做。任何帮助将非常感激! 编辑感谢 Aacini,它现在可以工作了,除了在代码中注明的一个奇怪的错误。
@echo on
setlocal enableDelayedExpansion
set cnta=0
Set cntb=0
for %%b in (*.avi) do (
set /a cnta=cnta+1
set line_!cnta!=%%~Nb
)
for %%c in (*.nfo) do (
set /a cntb=cntb+1
for %%i in (!cntb!) do ren "%%~fc" "!line_%%i!.nfo"
)
错误:第一个 nfo 似乎被撞到了列表的末尾,但它的位置仍然保留。与其他所有 nfo 一样,它的命名与相应的 avi 相匹配。
Test 1 (Original Test Folder) Results:
.nfo
Doctor Who - S02E01 (009) - Planet of Giants (1) - Planet of Giants.avi
Doctor Who - S02E01 (009) - Planet of Giants (2) - Dangerous Journey.avi
Doctor Who - S02E01 (009) - Planet of Giants (2) - Dangerous Journey.nfo
Doctor Who - S02E01 (009) - Planet of Giants (3) - Crisis.avi
Doctor Who - S02E01 (009) - Planet of Giants (3) - Crisis.nfo
Test 2 (Added Extra Bonus File) Results:
Doctor Who - S02E01 (009) - Planet of Giants (1) - Planet of Giants.avi
Doctor Who - S02E01 (009) - Planet of Giants (2) - Dangerous Journey.avi
Doctor Who - S02E01 (009) - Planet of Giants (2) - Dangerous Journey.nfo
Doctor Who - S02E01 (009) - Planet of Giants (3) - Crisis.avi
Doctor Who - S02E01 (009) - Planet of Giants (3) - Crisis.nfo
Doctor Who - S02E01 (009) - Planet of Giants (4) - The Making of Planet of Giants.avi
Doctor Who - S02E01 (009) - Planet of Giants (4) - The Making of Planet of Giants.nfo
某些文件夹将在列表末尾包含没有匹配 nfo 的奖励视频,但它们始终位于末尾。我阅读了 nfo 以验证仅“.nfo”(测试 1)/“Doctor Who - S02E01 (009) - 巨人星球 (4) - 巨人星球的制作.nfo”(测试 2)放错了位置,他们应该被《神秘博士 - S02E01 (009) - 巨人星球(1) - 巨人星球.nfo》
【问题讨论】:
-
使用
dir选项对文件列表进行排序可能会带来更好的运气。但我不知道你是否会因为一长串变量而遇到环境空间问题。 -
您还需要在第二个循环中对变量进行双重扩展。也许这会有所帮助:stackoverflow.com/questions/1199931/…
-
这可能是一个更好的参考:stackoverflow.com/questions/7882395/…
标签: batch-file