中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 10:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]怎样根据文本文件建立文件夹 查看 1,010 回复 7
楼 主 [已结]怎样根据文本文件建立文件夹 发表于 2007-09-28 01:54 ·  中国 山东 泰安 电信
新手上路
积分 10
发帖 4
注册 2007-09-28 00:25
18年会员
UID 98443
性别 男
状态 离线
有一文本文件test.txt:
2MORO
4 IN LOVE
183CLUB
Avril Lavigne
B.A.D
BEYOND
Cookies
F I R

我想用每行的人名建立文件夹,一行建一个。如下:
@echo off
set /p importTxt=
set /p outputPath=
for /f "tokens=1 delims= " %%j in ('more %importTxt%') do mkdir %outputPath%\%%j
set /p over=目录生成完毕,请按回车退出该程序。

运行后如果是连续字符的可以正常建立文件夹,但是4 IN LOVE,B.A.D,F I R这样有空格和.的名字只能建立以首字符为名的文件夹,如4,B,F。

请问如何修改才能正确建立4 IN LOVE,B.A.D,F I R文件夹。

[ Last edited by HAT on 2008-11-14 at 09:32 ]
2 发表于 2007-09-28 02:04 ·  中国 北京 中国科学院研究生院玉泉四公寓
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
19年会员
UID 74129
性别 男
状态 离线
试一试这个!


@echo off
for /f "delims=" %%a in (test.txt) do (
md "%%a"
)


楼主要自己思考啊
这个是很简单的任务1
3 发表于 2007-09-28 02:05 ·  中国 北京 中国科学院研究生院玉泉四公寓
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
19年会员
UID 74129
性别 男
状态 离线
Originally posted by mark91ft at 2007-9-28 01:54:
有一文本文件test.txt:
2MORO
4 IN LOVE
183CLUB
Avril Lavigne
B.A.D
BEYOND
Cookies
F I R

我想用每行的人名建立文件夹,一行建一个。如下:
@echo off
set /p impo ...



你的问题就是没有考虑空格嘛
这个问题现在已经不是问题了
加引号就是了
4 发表于 2007-09-28 02:37 ·  中国 山东 泰安 电信
新手上路
积分 10
发帖 4
注册 2007-09-28 00:25
18年会员
UID 98443
性别 男
状态 离线
Originally posted by scriptor at 2007-9-28 02:05 AM:



你的问题就是没有考虑空格嘛
这个问题现在已经不是问题了
加引号就是了



对不起,按你的CODE好像也不行,你说的加引号怎么加,加哪儿,请说的详细点,谢谢。
5 发表于 2007-09-28 02:41 ·  中国 北京 中国科学院研究生院玉泉四公寓
银牌会员
★★★
积分 1,187
发帖 555
注册 2006-12-21 07:35
19年会员
UID 74129
性别 男
状态 离线
Originally posted by mark91ft at 2007-9-28 02:37:



对不起,按你的CODE好像也不行,你说的加引号怎么加,加哪儿,请说的详细点,谢谢。


怎么不行?
我的测试了
可以的
你把你的test文件内容贴出来


加引号就是
md "%%a"
这里
默认下,空格会作为分隔符,所以 md 4 IN LOVE 不成功
但是 md "4 IN LOVE" 肯定可以的

不知道你是怎么测试的!?
6 发表于 2007-09-28 02:51 ·  中国 山东 泰安 电信
新手上路
积分 10
发帖 4
注册 2007-09-28 00:25
18年会员
UID 98443
性别 男
状态 离线
我是加在“%outputPath%\%%j”上了。改过来了,一切ok,谢谢。
7 发表于 2008-11-14 05:31 ·  中国 广东 阳江 电信
新手上路
积分 11
发帖 7
注册 2008-11-14 03:27
17年会员
UID 130906
性别 男
状态 离线
Originally posted by mark91ft at 2007-9-28 01:54:
@echo off
set /p importTxt=
set /p outputPath=
for /f "tokens=1 delims= " %%j in ('more %importTxt%') do mkdir %outputPath%\%%j
set /p over=目录生成完毕,请按回车退出该程序。


请问你改成什么样可以有空格键都行的?
我各处都该了还不行
8 发表于 2008-11-14 05:36 ·  中国 广东 阳江 电信
新手上路
积分 11
发帖 7
注册 2008-11-14 03:27
17年会员
UID 130906
性别 男
状态 离线
再试验后,知道是

@echo off
set /p importTxt=[请输入你已经准备好的txt文件的全路径]
set /p outputPath=[请输入你要将生成的目录保存到的路径]
for /f "tokens=1 delims=" %%a in ('more %importTxt%') do mkdir %

outputPath%\"%%a"
set /p over=目录生成完毕,请按回车退出该程序。

呵呵
论坛跳转: