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

[文件操作] 文件改歌曲名字的批处理

希望得到这样的结果

段品章 - 云深情也深.mp3     --->     云深情也深 - 段品章.mp3
成方圆 - 该怎样就怎样       --->     该怎样就怎样 - 成方圆
罗可珺 - 今夜雨濛濛.mp3     --->     今夜雨濛濛 - 罗可珺.mp3

---------------------------------------------------

我参考论坛的代码写了一个,程序运行后,文件名存在多余的空格。
代码贴出来,也算是复习吧。
  1. @echo on & setlocal EnableDelayedExpansion
  2. for %%i in (*.mp3) do (
  3.     for /f "delims=- tokens=1,2" %%a in ("%%~ni") do (
  4.         ren "%%i" "%%b - %%a"%%~xi
  5.      )
  6.    )
  7. pause
复制代码
不知道问题出在哪里?

回复 10# netdzb


    测试了,没有你说的问题。。。
你试试这个
  1. @echo off
  2. for /f "delims=" %%i in ('where .:*.mp3') do (
  3.     for /f "tokens=1,* delims=- " %%a in ("%%~ni") do (
  4.     echo "%%a - %%b"
  5.     ren "%%i" "%%b - %%a".mp3
  6.     )
  7. )
  8. pause
复制代码
微信:flashercs
QQ:49908356

TOP

回复 9# flashercs


    echo %%i 应该是多了改过名字的文件名,比如 何嘉莉 - 夜温柔.mp3 是第一个改名的文件
改名成 夜温柔 - 何嘉莉.mp3,程序最后一次执行又把 夜温柔 - 何嘉莉.mp3 改回 何嘉莉 - 夜温柔.mp3
也许你现在没电脑,等有电脑的时候你去测试一次吧,你的代码存在一个瑕疵。

TOP

回复 8# netdzb


    echo hello改成echo %%i 看看
微信:flashercs
QQ:49908356

TOP

回复 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次。这里不知道有啥更好的办法?

TOP

回复 6# flashercs

你看我的楼上,我已经指出问题了。是你的文件被连续改名了2次。把改名的扩展名改成其它的就ok了。

TOP

回复 4# netdzb


    就这一个不正确,说明是文件名不合标准
微信:flashercs
QQ:49908356

TOP

回复 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

TOP

回复 2# flashercs
代码有问题,运行结果不正确。

原档

段品章 -云深情也深.mp3
何嘉莉 - 夜温柔.mp3
罗可珺 - 今夜雨濛濛

运行结果不正确

何嘉莉 - 夜温柔.mp3    ===>  这个结果不正正确
云深情也深 - 段品章.mp3
今夜雨濛濛 - 罗可珺.mp3

TOP

自己养成好习惯 tokens 在前 delims 在后
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo on & setlocal EnableDelayedExpansion
  2. for %%i in (*.mp3) do (
  3.     for /f "tokens=1,* delims=- " %%a in ("%%~ni") do (
  4.         ren "%%i" "%%b - %%a"%%~xi
  5.      )
  6.    )
  7. pause
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表