中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 15:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]请教一个提取文件名中部分字符新建文件夹的问题 查看 937 回复 8
楼 主 [求助]请教一个提取文件名中部分字符新建文件夹的问题 发表于 2010-03-11 22:48 ·  中国 浙江 宁波 电信
新手上路
积分 7
发帖 7
注册 2010-03-09 01:19
16年会员
UID 161843
性别 男
状态 离线
当前文件文件夹下有N多MP3格式文件,看着实在太乱。。。MP3的文件名格式已经批量修改成以下格式

齐秦-无情的雨,无情的你 .mp3
齐秦-一无所有.mp3
刘欢-半个月亮爬上来.mp3

怎么样才能做到在当前目录下新建两个文件夹
齐秦
刘欢
并且把 齐秦-无情的雨,无情的你 .mp3,齐秦-一无所有.mp3放入“齐秦”文件夹

刘欢-半个月亮爬上来.mp3放入“刘欢”文件夹呢

忘老师们白忙中解答,谢谢。
2 发表于 2010-03-11 23:01 ·  中国 北京 丰台区 联通
初级用户
积分 33
发帖 32
注册 2006-02-21 23:08
20年会员
UID 50740
性别 男
状态 离线
move 齐* .\齐秦
move 刘* .\刘欢
3 发表于 2010-03-11 23:05 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
@echo off
for /f "tokens=1,2 delims=-" %%i in ('dir d:\*.mp3 /b /a:-d') do (
if not exist "d:\%%i" md "d:\%%i"
copy "d:\%%i-%%j" "d:\%%i")

示例中,mp3文件在d:\目录中

不好意思,疏忽少打了个字符。

[ Last edited by Hanyeguxing on 2010-3-12 at 13:59 ]
4 发表于 2010-03-11 23:09 ·  中国 浙江 宁波 电信
新手上路
积分 7
发帖 7
注册 2010-03-09 01:19
16年会员
UID 161843
性别 男
状态 离线
Originally posted by eless at 2010-3-11 22:48:
当前文件文件夹下有N多MP3格式文件,看着实在太乱。。。MP3的文件名格式已经批量修改成以下格式

齐秦-无情的雨,无情的你 .mp3
齐秦-一无所有.mp ...



这个…齐姓和刘姓歌手不止一位。。。
而且,文件夹的建立不能够呢
5 发表于 2010-03-11 23:15 ·  中国 北京 丰台区 联通
初级用户
积分 33
发帖 32
注册 2006-02-21 23:08
20年会员
UID 50740
性别 男
状态 离线
从你的问题描述只看到两位,呵呵。

可以用3楼的方法试试。
6 发表于 2010-03-11 23:19 ·  中国 浙江 宁波 电信
新手上路
积分 7
发帖 7
注册 2010-03-09 01:19
16年会员
UID 161843
性别 男
状态 离线
3F的老师的方法,文件夹建立顺利,可是为什么没移动文件到相应文件夹?
7 发表于 2010-03-11 23:25 ·  中国 浙江 宁波 电信
新手上路
积分 7
发帖 7
注册 2010-03-09 01:19
16年会员
UID 161843
性别 男
状态 离线
Originally posted by eless at 2010-3-11 23:09:



这个…齐姓和刘姓歌手不止一位。。。
而且,文件夹的建立不能够呢


是我的错。。。举例说了两位只
8 发表于 2010-03-11 23:34 ·  中国 北京 丰台区 联通
初级用户
积分 33
发帖 32
注册 2006-02-21 23:08
20年会员
UID 50740
性别 男
状态 离线
Originally posted by eless at 2010-3-11 23:19:
3F的老师的方法,文件夹建立顺利,可是为什么没移动文件到相应文件夹?


三楼老师在代码最后一行少了一个 -

hehe.

再把copy命令换成 move就好了。

move ".\%%i-%%j" .\%%i\)

[ Last edited by tachyon on 2010-3-11 at 23:37 ]
9 发表于 2010-03-11 23:40 ·  中国 浙江 宁波 电信
新手上路
积分 7
发帖 7
注册 2010-03-09 01:19
16年会员
UID 161843
性别 男
状态 离线
谢谢楼上,copy换成move了
可是我太粗心,没注意这个“-”。。。

非常感谢两位老师答疑!
论坛跳转: