中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批量按歌手名建立目录把歌曲移动到目录中
English/Chinese Fix Translation
作者:
标题: [求助]批量按歌手名建立目录把歌曲移动到目录中 上一主题 | 下一主题
iuiu
初级用户





积分 32
发帖 15
注册 2007-8-2
状态 离线
『楼 主』:  [求助]批量按歌手名建立目录把歌曲移动到目录中 使用 LLM 解释/回答一下

现在有几千首歌,文件名是这样的
王力宏 - Forever Love.mp3
王力宏 - I'm Lovin'it.mp3
万芳 - 不换.mp3
现在想根据文件名中的歌手名分别建立文件夹,并把歌曲移到相对应的歌手的目录中去。该怎么来书写此批处理?请高手不吝执教。非常感谢。


2008-8-20 13:43
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

@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 ]




知,不觉多。不知,乃求知
2008-8-20 13:56
查看资料  发短消息  网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下


for /f "tokens=1* delims=-" %%i in ('dir/b/a-d *.mp3') do (
md %%i 2>nul&copy "%%i-%%j" %%i
)

有必要可以把copy改成move

Last edited by huahua0919 on 2008-8-20 at 02:01 PM ]


2008-8-20 14:00
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
iuiu
初级用户





积分 32
发帖 15
注册 2007-8-2
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

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 正在处 ...


老大,目录是有了,歌都没了,欲哭无泪。


2008-8-20 14:05
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

2楼玩大了。


2008-8-20 14:07
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

'dir/b/a-d *.mp3'

1。 不明白,既然已经是按。mp3排列了。还要 /a-d做什么?
难道还要排除 *.mp3 的文件夹?

2。 与其大量的md操作还不如验证一下。

3, 按你的代码应该使用 move指令而不是copy。因为你没有del的操作。。




知,不觉多。不知,乃求知
2008-8-20 14:09
查看资料  发短消息  网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

别哭,现在你什么操作都不要做。。

我给你东西。。刚才的代码写错点?不过歌应该被copy到目录下了呀?




知,不觉多。不知,乃求知
2008-8-20 14:11
查看资料  发短消息  网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

我保险求保险,不在我这边运行,什么都难说。所以说你写的代码虽然你可能执行成功但他却出了问题
1.用.mp3做文件夹更定不会错
2用2 >nul的效率比 if exist的效率高
3就是我上面说的


2008-8-20 14:11
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

if exist "%cd%\%%i" del "%%i-%%j"

应该是: if exist "%cd%\%%i\%%i-%%j" del "%%i-%%j"

你的qq是多少?msn也行?




知,不觉多。不知,乃求知
2008-8-20 14:13
查看资料  发短消息  网志   编辑帖子  回复  引用回复
iuiu
初级用户





积分 32
发帖 15
注册 2007-8-2
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

目录都建好了,但是文件都没了,文件夹都是空的。


2008-8-20 14:14
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
iuiu
初级用户





积分 32
发帖 15
注册 2007-8-2
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

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&copy "%%i-%%j" %%i
)

有必要可以把copy改成move

Last edited by hu ...

这位老大的我也试过了,现在问题是目录是建好了,但多了很多额外的空目录。
原来302个文件1.6g左右,copy过去以后只有902m。

不过还是要谢谢2位。


2008-8-20 14:18
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

哎。不好意思。

已复制 1 个文件。

有无这个提示??

看来以后代码全加上 if errorlevel




知,不觉多。不知,乃求知
2008-8-20 14:19
查看资料  发短消息  网志   编辑帖子  回复  引用回复
iuiu
初级用户





积分 32
发帖 15
注册 2007-8-2
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

正在处理第!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 ]


2008-8-20 14:20
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

那就是你的文件名结构有问题不能够有特殊字符,不然就成空了,所以我就用copy的原因了


2008-8-20 14:21
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
flyinspace
银牌会员





积分 1206
发帖 517
注册 2007-3-25
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

既然有提示?怎么会文件夹里全是空的呢?




知,不觉多。不知,乃求知
2008-8-20 14:21
查看资料  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: