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

[文件操作] 批处理如何按照TXT列表内的名称修改文件名?

例如文件夹内有很多中英文歌曲,
小苹果.mp3
Play 我呸.ape
I Found You.mp3
........

TXT文件名列表内容:
筷子兄弟 小苹果
蔡依林 Play 我呸
The Wanted-I Found You
..........

TXT和批处理文件全部放音乐文件夹内,运行后修改文件名为:
筷子兄弟 小苹果.mp3
蔡依林 Play 我呸.ape
The Wanted-I Found You.mp3
.........

  1. dir /b > test.log
复制代码
看看test.log的歌曲列表和txt文件的顺序是否一致

TOP

顺序不一致,是不是需要正则表达式?如果用的话介绍下代码具体作用
文件名:小苹果.mp3 对照列表文件名:筷子兄弟 小苹果中的“小苹果”三个字,
需要自动匹配列表内的名称后修改,可能小苹果.mp3在文件夹排列第100位,Play 我呸.ape在50位,
而中间部分的歌曲没有把歌手信息,并且也没有将歌曲名称写入列表文件。
歌曲是网站下载的,音乐没有歌手名称,而在网站复制的内容介绍中有名称。

TOP

查找字符串后复制至剪贴板,重新命名,需要第三方工具

TOP

回复 3# 老卡机


这就不好判断了,因为有很多特殊情况,比如:
同一首歌曲,两个不同的歌手都唱过。
两首完全不同的歌曲,但是它们的歌曲名相同。
一首歌曲的名字是另一首歌曲名字的一部分。
......

建议换另一条路试试,右键单击一首歌曲,看看“详细信息”里面有没有你需要的内容。如果有的话,可以用命令行工具提取出来。

TOP

呃.....没有,不过都是一个网站下载的歌曲,没和其他人混合,
我想到一个思路,因为列表名称都是一行行的,而且需要处理的都在一个文件夹内,
是否可以用正则表达式,先整理出一个按顺序排列的重命名列表名称出来,
然后再进行命名?怎样做?来个顺序的学习下

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b *.mp3 *.ape') do (
  3.         for /f "delims=" %%b in ('findstr /ic:"%%~na" list.txt') do (
  4.                 ren "%%a" "%%b%%~xa"
  5.         )
  6. )
  7. pause
复制代码

TOP

本帖最后由 老卡机 于 2014-11-8 10:02 编辑

问题有点复杂一直没搞定,下面是个移动待命名歌曲的,
@echo off
(for /f "delims=" %%a in (列表.txt) do (
    md 列表
    if "%%~na" neq "列表" move "%%~na.*" 列表\
)) 2>nul
pause

现在需要的是一个批处理,将列表.TXT与重命名列表.TXT对齐,
重命名列表.TXT是网站复制的内容,可能和列表.TXT的顺序不一致,
如何用批处理把两个列表整理成一致的然后重命名?
列表.TXT内容:
小苹果
Play 我呸
I Found You
......
重命名列表.TXT内容:
筷子兄弟 小苹果
蔡依林 Play 我呸
The Wanted-I Found You
......

TOP

返回列表