[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理如何将Txt中的文件名重命名到文件夹的各个文件上(按顺序)?

本帖最后由 宫商角徵羽 于 2012-12-27 12:23 编辑

批量按顺序重命名Mp3为文本中的单词

文件名匹配规则:使用左侧Txt列表中的单词顺序对应右边的文件,重命名右边的文件
----------Names.Txt内容-----------                                       --------------文件夹/单词下的Mp3文件---------(编号缺失的Mp3文件)--------------

sincere                                              ------对应-->>                    Marker 01.mp3
mood                                              ------对应-->>                    Marker 02.mp3
static                                              ------对应-->>                    Marker 03.mp3【此处编号由03跳到05,不连续】
senator                                               ------对应-->>                   Marker 05.mp3
hobby                                               ------对应-->>                  Marker 06.mp3
lad                                                        ------对应-->>                  Marker 07.mp3
equip                                               ..........                              Marker 08.mp3【多处数字编号跳跃,也不连续】
frown                                                                                        Marker 10.mp3
.......                                                                                        ...............
.......                                                                                        .................
book                                                                                        Marker 125.mp3【注意此处数字编码有三位数】
.......                                                                                        ...............
.......                                                                                        ...............
                    
--------------------------------------                                           -----------------------------------------------------

--------------即实现如下规则的重命名----------------------
        ren "Marker 01.mp3.mp3" "sincere.mp3"
        ren "Marker 02.mp3.mp3" "mood.mp3"
        ren "Marker 03.mp3.mp3" "static.mp3"
        ren "Marker 05.mp3.mp3" "senator.mp3"
        ren "Marker 06.mp3.mp3" "hobby.mp3"
        ren "Marker 07.mp3.mp3" "lad.mp3"
        ren "Marker 08.mp3.mp3" "equip.mp3"
        ren "Marker 10.mp3.mp3" "frown.mp3"
        。。。。。
        ren "Marker 125.mp3.mp3" "book.mp3"
-------------------------------------------------------------------

--------------------------------【以下是衍生问题】------------------------------
      由于Dir /on 排序有问题(如word (10).mp3会排在word (2).mp3前面)
     因此不能匹配Txt中的单词顺序,所以产生了如下困扰

--------------如下MP3文件名又何实现呢----------(带括号,数字位数也不相同的MP3files)--------------
       ren "Wordlist (1).mp3" "sincere.mp3"【这里Mp3是Win重命名的文件名格式,带括号,数字位数也不相同】
       ren "Wordlist (2).mp3" "mood.mp3"
       ren "Wordlist (3).mp3" "static.mp3"
       ren "Wordlist (4).mp3" "senator.mp3"
       ren "Wordlist (5).mp3" "hobby.mp3"
       ren "Wordlist (6).mp3" "lad.mp3"
       ren "Wordlist (7).mp3" "equip.mp3"
       ren "Wordlist (8).mp3" "frown.mp3"
       ren "Wordlist (9).mp3" "fasten.mp3"
       ren "Wordlist (10).mp3" "software.mp3"
      。。。。。。。。
------------------------------------------------------------------

本帖最后由 宫商角徵羽 于 2012-12-26 20:57 编辑

为什么 Dir /on 后显示的结果却是:

单词 (1).mp3 这里却不是按顺序呢?
单词 (10).mp3
单词 (11).mp3
单词 (12).mp3
单词 (13).mp3
单词 (14).mp3
单词 (15).mp3
单词 (16).mp3
单词 (17).mp3
单词 (18).mp3
单词 (19).mp3
单词 (2).mp3 这里却不是按顺序呢?
单词 (20).mp3
单词 (21).mp3
单词 (22).mp3
单词 (23).mp3
单词 (24).mp3
单词 (25).mp3
单词 (26).mp3
单词 (27).mp3
单词 (28).mp3
单词 (29).mp3
单词 (3).mp3   这里却不是按顺序呢?
单词 (30).mp3
单词 (31).mp3
单词 (32).mp3
单词 (33).mp3

TOP

本帖最后由 宫商角徵羽 于 2012-12-26 23:00 编辑

回复 3# 523066680

恩,这个代码本身没有问题。  

只是我遇到的情况好像没这么简单,可能问题就出在这个字符判断上了吧。

原本文件名是1-100,数字不连续,中间有缺失,所以我就把它们在Windows文件夹下重命名了,又做成了如上所说的连续的Txt文本,不过这样一来原本的文件顺序就改变了,直接导致文件顺序与单词表顺序不匹配。

也就是说  set /a n+=1 (用于连续递增的文件名,而我当下面临的是有缺失的递增文件名)

所以我现在考虑Dir后的文件名通过比较文件名大小来实现顺序匹配。。。。(当然是非字符判断下,真实的大小)。。。。

不好意思,之前没有讲清楚。
可能,现在也没讲清楚吧。。。。不知大家能不能理解。。。。

TOP

回复 5# 523066680


昨天熄灯了,早起来回复。

恩,备份是肯定了的,不过思路还在继续探索中•••••

有人说用补位可以解决dir排序问题,我觉得不错(不过要修改文件名)  不知道还有没有更好地解决方案?

对于我的文件名不连续的情况下批处理,也是想请教更好地解决方案,••••••好吧我承认自己有点技术强迫症•••••

TOP

回复 7# 523066680


    目前,我也是用这样的方法弄的,不过,感觉有点像笨法子一样,  所以没敢声张,见到高手也这样弄,心里平衡多了,呵呵

   不过,继续探索中。。。。。,谁让我懒嘞!!

TOP

回复 9# BAT-VBS

恩,问题已经重新编写!   

我帮你用BAT搞定,让Excel一边凉快去吧
有没没感觉这句话很酷呢?呵呵呵

TOP

回复 12# BAT-VBS
就像13所说的排序出现错误。。。不过谢谢你的思路。。。继续期待。。。。

TOP

回复 14# batman


    已经填写了最大文件名,也将代码中的"mark !a!.mp3"部分改回了"Marker !a!.mp3"不过仍然显示: 找不到文件,或文件名重复  错在什么地方呢。。。

TOP

本帖最后由 宫商角徵羽 于 2012-12-28 11:03 编辑

回复 13# terse


    13楼正解,虽然是生成Ren 列表,您老人家喝口水休息一下,剩下的交给我吧。。。呵呵。。。。。

多谢!!!(感觉还是生成Ren列表好,保险)

TOP

本帖最后由 宫商角徵羽 于 2012-12-28 13:44 编辑

回复 14# batman


          感谢贴:batman成功的如春风般送来了正确解答,宫商角徵羽感谢他/她

请教一下,  第四行:在批处理中变量的初值是不是“0”?
                           为什么要特别赋值,或者前后是修改有何高见?

TOP

回复 19# 523066680


    恩,你能抽出时间来给我解答,我就已经很感谢了。
!!!不要内疚!!!呵呵呵          多谢!!

TOP

返回列表