windows与linux下 如何批量更改文件名 5
我用蜻蜓fm下载了评书,但是文件名称都是数字,如何把数字全部换成对应的评书第几集,以下是我整理的列表,数字与选集是一一对应的,应该使用什么命令,或者脚本,能把数字更改成后...
我用蜻蜓fm下载了评书,但是文件名称都是数字,如何把数字全部换成对应的评书第几集,以下是我整理的列表,数字与选集是一一对应的,应该使用什么命令,或者脚本,能把数字更改成后面的选集,多谢
展开
3个回答
展开全部
提供一个在Linux下使用Shell脚本来批量改名的方法,我很久不用Windows系统了,所以只有Linux下的方法。
我这边在Linux下的测试过程是下面这样的:
「0」提醒:在终端terminal中,第一步就是把当前目录切换到文件所在目录,用cd命令。
「1」新建文件夹,起名为「rename_by_source」,用来放置「改名前的文件」、「shell脚本文件」、「文件名对应文件」,以及保存「改名后的文件」。你在自己电脑上操作时,也建议你把下载下来的需要改名的文件放到一个单独的文件夹里,这样容易查看一些。
「2」我新建的「rename_by_source」文件夹中,根据你给的文件名对应表,新建了4个「改名前的文件」,它们是空白文件,只是有个文件名而已,另外,估计文件类型是mp3文件,所以后缀名是.mp3,如果你的文件不是mp3类型的话,请届时自行在shell脚本文件里更改相关的代码行。
「3」在文件夹中,新建了「source_name.txt」文件,用来放置(改名前)与(改名后)的对应文件名,跟你给的图片一样,也是一行对应一个文件的,只不过,把ren那一列删除了。如果你要直接使用下面提供的shell脚本的话,也请把你的文件名对应文件中的ren那一列删除,并且「数字」名的前面不要有空格或其它字符。同时,你的文件名对应文件也请保存为「source_name.txt」这个名称和格式的文件。
「4」shell脚本文件「rename_by_source.sh」,内容如下:
#!/bin/bashcat source_name.txt | while read LINEdo ori_name=${LINE:0:7}; des_name=${LINE:8}; cp "${ori_name}.mp3" "${des_name}.mp3";done解释一下,第3句是逐行读取source_name.txt的内容,并赋值给变量LINE,第5句是把该行的第1至第8个字符作为原始文件名,第6句是把该行的第9至末尾的字符串作为新文件名,第7句是在当前文件夹下「复制」(原始文件名.mp3)文件并重命名为(新文件名.mp3)文件。
之所以采用「复制」而不是「移动」命令,主要还是希望避免误操作。
「5」在前面的文件夹中,新建并保存上述shell脚本文件,然后在终端terminal里赋予此shell脚本文件的可执行权限,反正也没有什么关系,我是直接改为了777权限:
sudo chmod 777 rename_by_source.sh「6」在终端中,在当前文件夹下运行上述shell脚本文件:
./rename_by_source.sh完成。
下面是我这里的测试截图,
搞定。
上述shell脚本及演示文件等,已放入百度网盘,链接: 「1F-3Mc2n5-8a4QSCNAVpDfg」, 提取码: 「82jd」,请自取,有效期7天!(链接的前面部分,请自行补充。)
如有帮助,烦请采纳,谢谢!
我这边在Linux下的测试过程是下面这样的:
「0」提醒:在终端terminal中,第一步就是把当前目录切换到文件所在目录,用cd命令。
「1」新建文件夹,起名为「rename_by_source」,用来放置「改名前的文件」、「shell脚本文件」、「文件名对应文件」,以及保存「改名后的文件」。你在自己电脑上操作时,也建议你把下载下来的需要改名的文件放到一个单独的文件夹里,这样容易查看一些。
「2」我新建的「rename_by_source」文件夹中,根据你给的文件名对应表,新建了4个「改名前的文件」,它们是空白文件,只是有个文件名而已,另外,估计文件类型是mp3文件,所以后缀名是.mp3,如果你的文件不是mp3类型的话,请届时自行在shell脚本文件里更改相关的代码行。
「3」在文件夹中,新建了「source_name.txt」文件,用来放置(改名前)与(改名后)的对应文件名,跟你给的图片一样,也是一行对应一个文件的,只不过,把ren那一列删除了。如果你要直接使用下面提供的shell脚本的话,也请把你的文件名对应文件中的ren那一列删除,并且「数字」名的前面不要有空格或其它字符。同时,你的文件名对应文件也请保存为「source_name.txt」这个名称和格式的文件。
「4」shell脚本文件「rename_by_source.sh」,内容如下:
#!/bin/bashcat source_name.txt | while read LINEdo ori_name=${LINE:0:7}; des_name=${LINE:8}; cp "${ori_name}.mp3" "${des_name}.mp3";done解释一下,第3句是逐行读取source_name.txt的内容,并赋值给变量LINE,第5句是把该行的第1至第8个字符作为原始文件名,第6句是把该行的第9至末尾的字符串作为新文件名,第7句是在当前文件夹下「复制」(原始文件名.mp3)文件并重命名为(新文件名.mp3)文件。
之所以采用「复制」而不是「移动」命令,主要还是希望避免误操作。
「5」在前面的文件夹中,新建并保存上述shell脚本文件,然后在终端terminal里赋予此shell脚本文件的可执行权限,反正也没有什么关系,我是直接改为了777权限:
sudo chmod 777 rename_by_source.sh「6」在终端中,在当前文件夹下运行上述shell脚本文件:
./rename_by_source.sh完成。
下面是我这里的测试截图,
搞定。
上述shell脚本及演示文件等,已放入百度网盘,链接: 「1F-3Mc2n5-8a4QSCNAVpDfg」, 提取码: 「82jd」,请自取,有效期7天!(链接的前面部分,请自行补充。)
如有帮助,烦请采纳,谢谢!
展开全部
在你下载的音频文件内新建一个文本文档,把你写好的复制进去,然后Ctrl+s保存,退出以后鼠标单击该文件,摁F2改文件的后缀名,将.txt改为.bat格式双击即可。如果没有后缀名,单击选项,文件,显示后缀名。
追问
点击了 cmd弹出来说命令语法不正确
追答
把白眉大侠后面的空格删掉
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后面的文件名用双引号引起来
保存成bat批处理文件
Windows的cmd命令模式下执行bat文件即可
Linux下还要把ren换成mv命令
保存成bat批处理文件
Windows的cmd命令模式下执行bat文件即可
Linux下还要把ren换成mv命令
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |