标题: [求助]批量按歌手名建立目录把歌曲移动到目录中
[打印本页]
作者: iuiu
时间: 2008-8-20 13:43
标题: [求助]批量按歌手名建立目录把歌曲移动到目录中
现在有几千首歌,文件名是这样的
王力宏 - Forever Love.mp3
王力宏 - I'm Lovin'it.mp3
万芳 - 不换.mp3
现在想根据文件名中的歌手名分别建立文件夹,并把歌曲移到相对应的歌手的目录中去。该怎么来书写此批处理?请高手不吝执教。非常感谢。
作者: flyinspace
时间: 2008-8-20 13:56
@echo off & setlocal EnableDelayedExpansion
set "Total=0"
for /f "delims=- tokens=1,* " %%i in (' dir /b *.mp3') do (
set /a "Total+=1"
echo 正在处理第!Total!首歌:
if not exist "%%i" md "%%i"
if exist "%%i-%%j" copy "%%i-%%j" "%cd%\%%i"
if exist "%cd%\%%i\%%i-%%j" del "%%i-%%j"
)
echo 处理完毕,共处理首歌~!&pause>nul
严谨的书写方式应该如上。。。。
Last edited by flyinspace on 2008-8-20 at 02:40 PM ]
作者: huahua0919
时间: 2008-8-20 14:00
for /f "tokens=1* delims=-" %%i in ('dir/b/a-d *.mp3') do (
md %%i 2>nul© "%%i-%%j" %%i
)
有必要可以把copy改成move
Last edited by huahua0919 on 2008-8-20 at 02:01 PM ]
作者: iuiu
时间: 2008-8-20 14:05
Originally posted by flyinspace at 2008-8-20 01:56 PM:
@echo off & setloacl EnableDelayedExpansion
set "Total=0"
for /f "delims=- tokens=1,* " %%i in (' dir /b *.mp3') do (
set /a "Total+=1"
echo 正在处 ...
老大,目录是有了,歌都没了,欲哭无泪。
作者: huahua0919
时间: 2008-8-20 14:07
2楼玩大了。
作者: flyinspace
时间: 2008-8-20 14:09
'dir/b/a-d *.mp3'
1。 不明白,既然已经是按。mp3排列了。还要 /a-d做什么?
难道还要排除 *.mp3 的文件夹?
2。 与其大量的md操作还不如验证一下。
3, 按你的代码应该使用 move指令而不是copy。因为你没有del的操作。。
作者: flyinspace
时间: 2008-8-20 14:11
别哭,现在你什么操作都不要做。。
我给你东西。。刚才的代码写错点?不过歌应该被copy到目录下了呀?
作者: huahua0919
时间: 2008-8-20 14:11
我保险求保险,不在我这边运行,什么都难说。所以说你写的代码虽然你可能执行成功但他却出了问题
1.用.mp3做文件夹更定不会错
2用2 >nul的效率比 if exist的效率高
3就是我上面说的
作者: flyinspace
时间: 2008-8-20 14:13
if exist "%cd%\%%i" del "%%i-%%j"
应该是: if exist "%cd%\%%i\%%i-%%j" del "%%i-%%j"
你的qq是多少?msn也行?
作者: iuiu
时间: 2008-8-20 14:14
目录都建好了,但是文件都没了,文件夹都是空的。
作者: iuiu
时间: 2008-8-20 14:18
Originally posted by huahua0919 at 2008-8-20 02:00 PM:
for /f "tokens=1* delims=-" %%i in ('dir/b/a-d *.mp3') do (
md %%i 2>nul© "%%i-%%j" %%i
)
有必要可以把copy改成move
Last edited by hu ...
这位老大的我也试过了,现在问题是目录是建好了,但多了很多额外的空目录。
原来302个文件1.6g左右,copy过去以后只有902m。
不过还是要谢谢2位。
作者: flyinspace
时间: 2008-8-20 14:19
哎。不好意思。
已复制 1 个文件。
有无这个提示??
看来以后代码全加上 if errorlevel
作者: iuiu
时间: 2008-8-20 14:20
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
正在处理第!Total!首歌:
已复制 0 个文件。
处理完毕,共处理首歌~!
Last edited by iuiu on 2008-8-20 at 02:25 PM ]
作者: huahua0919
时间: 2008-8-20 14:21
那就是你的文件名结构有问题不能够有特殊字符,不然就成空了,所以我就用copy的原因了
作者: flyinspace
时间: 2008-8-20 14:21
既然有提示?怎么会文件夹里全是空的呢?
作者: flyinspace
时间: 2008-8-20 14:23
move 顶多移动失败呀。
哎。。以后这种代码还是用move好了。至少安全。
作者: iuiu
时间: 2008-8-20 14:26
Originally posted by huahua0919 at 2008-8-20 02:21 PM:
那就是你的文件名结构有问题不能够有特殊字符,不然就成空了,所以我就用copy的原因了
哦,不过copy的话,也少了将近一半啊。
作者: huahua0919
时间: 2008-8-20 14:28
不管你是copy还是move都会少,只要你的文件名有特殊字符
作者: iuiu
时间: 2008-8-20 14:30
哦,谢谢
作者: flyinspace
时间: 2008-8-20 14:33
看了你第13楼的发言。
我知道错在什么地方了。。。。。
汗。。不好意思把你的日文歌都删掉了。
作者: iuiu
时间: 2008-8-20 14:42
呵呵,没关系,歌没了可以再下。是不是文件名的原因?
作者: iuiu
时间: 2008-8-20 14:44
Originally posted by huahua0919 at 2008-8-20 02:28 PM:
不管你是copy还是move都会少,只要你的文件名有特殊字符
刚才又做了下,用你写的批处理不会少歌,只是处理不了的歌还在原处。
作者: flyinspace
时间: 2008-8-20 14:45
嗯,编码格式问题。
我的验证文件删除操作出了点问题。。
然后setlocal 这里出现了笔误。。写成了setloacl
所以就不可以计数了。
作者: flyinspace
时间: 2008-8-20 14:47
Originally posted by iuiu at 2008-8-20 02:44 PM:
刚才又做了下,用你写的批处理不会少歌,只是处理不了的歌还在原处。
少歌只是因为使用了del 语句。。
我在2楼已经修正了错误。
你可以再试下。
他的批处理不是处理不了的还在原处,是处理了的也还在原处。所以建议使用move。。。
作者: iuiu
时间: 2008-8-20 14:53
Originally posted by flyinspace at 2008-8-20 02:47 PM:
少歌只是因为使用了del 语句。。
我在2楼已经修正了错误。
你可以再试下。
他的批处理不是处理不了的还在原处,是处理了的也还在原处。所以建议使用move。。。
他的我改成move了,部分放进对应目录,部分依然在原地,生成的文件夹中有很多多余的空文件夹。
你的修正版我也试了,文件夹基本没有多余的,但是只有5个文件移进去了,还有100多个纹丝不动。
找到部分原因,在文件名的格式是歌手空格-空格歌名,我改了一下你写的批处理,现在就是没能把文件移进去,目录是没问题了。
Last edited by iuiu on 2008-8-20 at 03:00 PM ]
作者: flyinspace
时间: 2008-8-20 15:01
那?你的歌曲名都是正常的么??
dir /b *.mp3 把格式拿来看一下??
作者: iuiu
时间: 2008-8-20 15:06
Alison Moyet - Windmills Of Your Mind.mp3
Ann Breen - One Day When We Were Young.mp3
Atomic Kitten - Cradle.mp3
Avril Lavigne - I'm With You.mp3
Avril Lavigne - My Happy Ending.mp3
Bennie K - サンライズ.mp3
Berite Higgins - Casablanca.mp3
Beyonce Feat Jay - Z - Crazy In Love.mp3
Billy Joel - Just The Way You Are.mp3
Boa Verbal - Some Day One Day.mp3
Brian Hyland - Sealed With A Kiss.mp3
Britney Spears - Don’t Let Me Be The Last To Know.mp3
Britney Spears - Everytime.mp3
Bryan Adams - Everything I Do, I Do It For You.mp3
Bump Of Chicken - Supernova.mp3
Bump Of Chicken - アルエ.mp3
Bump Of Chicken - オンリー ロンリー グローリー.mp3
Carly Simon - Nobody Does It Better.mp3
Caron Nightingale - Promises Don't Come Easy.mp3
Christina Aguilera - Beautiful.mp3
Christina Aguilera - The Voice Within.mp3
Christina Milian - When You Look At Me.mp3
Corey Hart - Never Surrender.mp3
Crystal Kay Mflo - Reeewind.mp3
Darren Hayes - Creepin' Up On You.mp3
Delta Goodrem&brian Mcfadden - Almost Here.mp3
Dir En Grey - Dozing Green.mp3
Don Mclean - And I Love You So.mp3
Dreams Come True - Best Of Dreams Come True.mp3
Dreams Come True - やさしいキスをして.mp3
Duncan James & Keedie - I Believe In My Heart.mp3
Elton John - Candle In The Wind.mp3
Eva Cassidy - What A Wonderful World.mp3
Every Little Thing - きみの て.mp3
Every Little Thing - しあわせの飈景.mp3
Every Little Thing - また あした.mp3
Every Little Thing - 一日の始まりに....mp3
Every Little Thing - 冬がはじまるよ Feat. 槇原敬之.mp3
Every Little Thing - 恋をしている.mp3
Every Little Thing - 恋文.mp3
Faye Wong - Eyes On Me.mp3
Fools Garden - Lemon Tree.mp3
Forever Young - 01.We Will Rock You.mp3
Fuad Backovic Deen - In The Disco.mp3
Gareth Gates - Anyone Of Us.mp3
Garnet Crow - 夕月夜.mp3
Garnet Crow - 晴れ時計.mp3
Georges Michael - Faith.mp3
Gloria Gaynor - I Will Survive - Gloria Gaynor.mp3
Gorie With Jasmine&joann - Mickey.mp3
Gracie Fields - One Day When We Were Young.mp3
Groove Coverage - God Is A Girl.mp3
Groove Coverage - She.mp3
Il Divo - Unbreak My Heart (Regresa A Mi).mp3
Jamie Cullum - I Want To Be A Popstar.mp3
Jamie Scott - Searching.mp3
Janne Da Arc - 月光花.mp3
Jay Sean - Stolen.mp3
John Denver - Take Me Home, Country Roads.mp3
John Lennon - Only You.mp3
Joss Stone - You Had Me.mp3
Joy Enriquez - How Can I Not Love You.mp3
Justin Timberlake - Cry Me A River.mp3
Katie Melua - Crawling Up A Hill.mp3
Kelis Feat Andre 3000 - Millionaire.mp3
Kelly Clarkson - Because Of You.mp3
Kinki Kids - ね、がんばるよ。.mp3
Kiyasu Kohei - Terra.mp3
Kt Tunstall - Black Horse And The Cherry Tree.mp3
Kugimiya Rie - Ano Yume No Mukou He.mp3
Kylie Minogue - I Believe In You.mp3
Lene Marlin - Sitting Down Here.mp3
Lionel Richie - Hello.mp3
Louis Armstrong - What A Wonderful World.mp3
Love United - Live For Love United.mp3
Lucie Silvas - It's Too Late.mp3
Mai Kuraki - Secret Of My Heart.mp3
Mariah Carey & Whitney Houston - When You Believe (From The Prince Of Egypt Feat.Whitney Houston).mp3
Mariah Carey & Whitney Houston - When You Believe.mp3
Mariah Carey - Hero.mp3
Mariah Carey - I Still Believe.mp3
Mariah Carey - Touch My Body.mp3
Mariah Carey - Without You.mp3
Martine Mccutcheon - Perfect Moment.mp3
Maxi Priest - Fields.mp3
Michael Jackson - Heal The World.mp3
Michael Jackson - You Are Not Alone.mp3
Mihimaru Gt - 恋する気持ち.mp3
Minnie Driver - Invisible Girl.mp3
Minnie Riperton - Loving You.mp3
Misia By Sq - Holy Hold Me.mp3
Monkey Majik Mflo - Picture Perfect.mp3
Namie Amuro Feat. Mflo - Lovin' It.mp3
Namie Amuro Verbal - Lovin' It (Jc Hip Hop Mix).mp3
Natalie Imbruglia - Satellite.mp3
Natasha Bedingfield - These Words.mp3
Olivia Newton John - I Love You, Honestly Love You.mp3
Orange Range - Locolotion.mp3
Orange Range - W.mp3
Orange Range - チェスト.mp3
Orange Range - ミチシルベ~a Road Home~.mp3
Orange Range - ロコローション.mp3
Orange Range - 以心電信.mp3
Orange Range - 花.mp3
Paul Mccartney - Maybe I'm Amazed.mp3
Paul Simon - The Sound Of Silence.mp3
Phil Collins - Another Day In Paradise.mp3
Pu Shu - Radio In My Head.mp3
R Kelly - Happy People.mp3
R. Kelly - I Believe I Can Fly.mp3
Red Hot Chilli Peppers - Under The Bridge.mp3
Reira Starring Yuna Ito - Endless Story.mp3
Richard Marx - Right Here Waiting.mp3
Richard Tauber - One Day When We Were Young.mp3
Ricky Maritn - The Cup Of Life.mp3
Righteous Brothers - Unchanged Melody.mp3
Robbie Williams - Ain't That A Kick In The Head.mp3
Robbie Williams - Misunderstood.mp3
Rush Tribute - Anthem (Tribute).mp3
S Club 7 - Never Had A Dream Come True.mp3
Shakins Stevens - Because I Love You.mp3
Shania Twain - Forever And For Always.mp3
Sheena Easton - Almost Over You.mp3
Shimokawa Mikuni - Alone.mp3
Steve Brookstein - Against All Odds.mp3
Stevie Wonder - You Are The Sunshine Of My Life.mp3
Tara Maclean - Settling.mp3
The 411 - Dumb.mp3
The Calling - Wherever You Will Go.mp3
The Lovefreekz - Shine.mp3
The Temptations - Just My Imagination.mp3
The Zutons - Confusion.mp3
Toni Braxton - Breathe Again.mp3
Toni Braxton - Unbreak My Heart.mp3
Usher & Alicia Keys - My Boo.mp3
Utada Hikaru - Colors.mp3
Utada Hikaru - Distance.mp3
Vanessa Carlton - A Thousand Miles.mp3
Vo Vo Tau - 裸~nude~.mp3
Whitney Houston - I Will Always Love You.mp3
Will Young - Evergreen.mp3
Will Young - Your Game.mp3
作者: flyinspace
时间: 2008-8-20 15:12
文件移动后的错误提示呢?
麻烦把结果贴一下。
作者: flyinspace
时间: 2008-8-20 15:15
@echo off & setlocal EnableDelayedExpansion
set "Total=0"
for /f "delims=- tokens=1,* " %%i in (' dir /b *.mp3') do (
set /a "Total+=1"
echo 正在处理第!Total!首歌:[%%i-%%j]
if not exist "%%i" md "%%i"
if exist "%%i-%%j" (
copy "%%i-%%j" "%cd%\%%i"
) else (
echo [%%i-%%j]未处理>>Err.txt
)
if exist "%cd%\%%i\%%i-%%j" del "%%i-%%j"
)
echo 处理完毕,共处理[!Total!]首歌~!&pause>nul
start Err.txt
上面的代码运行结束后,把弹出的文本文件的内容麻烦也复制下。
作者: iuiu
时间: 2008-8-20 15:29
Originally posted by flyinspace at 2008-8-20 03:15 PM:
@echo off & setlocal EnableDelayedExpansion
set "Total=0"
for /f "delims=- tokens=1,* " %%i in (' dir /b *.mp3') do (
set /a "Total+=1"
echo 正在处 ...
未生成Err.txt文件
作者: flyinspace
时间: 2008-8-20 15:33
没有生成?
就表示全复制成功了呀。。。
作者: iuiu
时间: 2008-8-20 16:06
文件依旧不动,目录空空如也,这条指令未被执行?
还是文件名未匹配到?
作者: flyinspace
时间: 2008-8-20 16:17
@echo off & setlocal EnableDelayedExpansion
set "Total=0"
for /f "delims=- tokens=1,* " %%i in (' dir /b *.mp3') do (
set /a "Total+=1"
echo 正在处理第!Total!首歌:[%%i-%%j]
if not exist "%%i" md "%%i"
copy "%%i-%%j" "%cd%\%%i"
if errorlevel 1 echo [%%i-%%j]未处理>>Err.txt
if exist "%cd%\%%i\%%i-%%j" del "%%i-%%j"
)
echo 处理完毕,共处理[!Total!]首歌~!&pause>nul
start Err.txt
这个呢?
作者: terse
时间: 2008-8-20 17:17
@echo off
for %%i in (%~dp0*.mp3) do (
for /f "delims=- " %%j in ("%%i") do (
if not exist "%%j\" md "%%j"
copy "%%i" "%%j" >nul
))
pause
作者: iuiu
时间: 2008-8-20 17:47
Originally posted by flyinspace at 2008-8-20 04:17 PM:
@echo off & setlocal EnableDelayedExpansion
set "Total=0"
for /f "delims=- tokens=1,* " %%i in (' dir /b *.mp3') do (
set /a "Total+=1"
echo 正在处 ...
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
未处理
作者: slore
时间: 2008-8-20 18:04
if %errorlevel% 1 echo [%%i-%%j]未处理>>Err.txt
作者: iuiu
时间: 2008-8-20 18:04
找到问题了,歌手名后面一个空格在作怪,现在可以了,谢谢楼上各位。