标题: [文件操作] 文件改歌曲名字的批处理 [打印本页]
作者: netdzb 时间: 2019-7-22 07:26 标题: 文件改歌曲名字的批处理
希望得到这样的结果
段品章 - 云深情也深.mp3 ---> 云深情也深 - 段品章.mp3
成方圆 - 该怎样就怎样 ---> 该怎样就怎样 - 成方圆
罗可珺 - 今夜雨濛濛.mp3 ---> 今夜雨濛濛 - 罗可珺.mp3
---------------------------------------------------
我参考论坛的代码写了一个,程序运行后,文件名存在多余的空格。
代码贴出来,也算是复习吧。- @echo on & setlocal EnableDelayedExpansion
- for %%i in (*.mp3) do (
- for /f "delims=- tokens=1,2" %%a in ("%%~ni") do (
- ren "%%i" "%%b - %%a"%%~xi
- )
- )
- pause
复制代码
不知道问题出在哪里?
作者: flashercs 时间: 2019-7-22 08:41
- @echo on & setlocal EnableDelayedExpansion
- for %%i in (*.mp3) do (
- for /f "tokens=1,* delims=- " %%a in ("%%~ni") do (
- ren "%%i" "%%b - %%a"%%~xi
- )
- )
- pause
复制代码
作者: Batcher 时间: 2019-7-22 09:11
自己养成好习惯 tokens 在前 delims 在后
作者: netdzb 时间: 2019-7-22 09:36
回复 2# flashercs
代码有问题,运行结果不正确。
原档
段品章 -云深情也深.mp3
何嘉莉 - 夜温柔.mp3
罗可珺 - 今夜雨濛濛
运行结果不正确
何嘉莉 - 夜温柔.mp3 ===> 这个结果不正正确
云深情也深 - 段品章.mp3
今夜雨濛濛 - 罗可珺.mp3
作者: netdzb 时间: 2019-7-22 09:42
回复 2# flashercs
你的代码存在的问题是,有的mp3被修改了2次。
我这样改可以通过,然后把.kuwo改回mp3。你看你还有更好的方法吗?
@echo on & setlocal EnableDelayedExpansion
for %%i in (*.mp3) do (
for /f "tokens=1,* delims=- " %%a in ("%%~ni") do (
rem ren "%%i" "%%b - %%a"%%~xi
ren "%%i" "%%b - %%a".kuwo
)
)
pause
作者: flashercs 时间: 2019-7-22 09:46
回复 4# netdzb
就这一个不正确,说明是文件名不合标准
作者: netdzb 时间: 2019-7-22 09:48
回复 6# flashercs
你看我的楼上,我已经指出问题了。是你的文件被连续改名了2次。把改名的扩展名改成其它的就ok了。
作者: netdzb 时间: 2019-7-22 10:04
回复 6# flashercs
@echo off & setlocal EnableDelayedExpansion
for %%i in (*.mp3) do (
for /f "tokens=1,* delims=- " %%a in ("%%~ni") do (
echo hello
ren "%%i" "%%b - %%a".mp3
)
)
pause
你放3个mp3到某个文件里去测试吧,echo hello执行了4次。这里不知道有啥更好的办法?
作者: flashercs 时间: 2019-7-22 10:18
回复 8# netdzb
echo hello改成echo %%i 看看
作者: netdzb 时间: 2019-7-22 10:36
回复 9# flashercs
echo %%i 应该是多了改过名字的文件名,比如 何嘉莉 - 夜温柔.mp3 是第一个改名的文件
改名成 夜温柔 - 何嘉莉.mp3,程序最后一次执行又把 夜温柔 - 何嘉莉.mp3 改回 何嘉莉 - 夜温柔.mp3
也许你现在没电脑,等有电脑的时候你去测试一次吧,你的代码存在一个瑕疵。
作者: flashercs 时间: 2019-7-22 11:35
回复 10# netdzb
测试了,没有你说的问题。。。
你试试这个- @echo off
- for /f "delims=" %%i in ('where .:*.mp3') do (
- for /f "tokens=1,* delims=- " %%a in ("%%~ni") do (
- echo "%%a - %%b"
- ren "%%i" "%%b - %%a".mp3
- )
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |