中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-24 02:44
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]如何提取文本第一行作为新建文件夹的名字 查看 3,952 回复 21
楼 主 [已解决]如何提取文本第一行作为新建文件夹的名字 发表于 2007-12-19 09:31 ·  中国 上海 联通
初级用户
积分 120
发帖 48
注册 2007-12-01 19:05
18年会员
UID 104373
性别 男
状态 离线
例如:1.txt内容如下
2131241
6564556
5474577

现在要提取文本第一行内容,并新建文件夹的名字为第一行内容~~~?
怎么解决?谢谢~~

[ Last edited by chenai79921 on 2007-12-25 at 10:54 AM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
kissbill +2 2008-11-15 00:27
2 发表于 2007-12-19 09:54 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
for /f "tokens=2 delims=:" %%i in ('findstr /n . 1.txt^|findstr /b "1:"') do md %%i
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
kissbill +2 2008-11-15 00:27
第一高手 第二高手

3 发表于 2007-12-19 10:54 ·  中国 江苏 扬州 电信
高级用户
★★★
积分 620
发帖 329
注册 2007-12-05 15:34
18年会员
UID 104754
性别 男
状态 离线
成功.......
4 发表于 2007-12-19 11:00 ·  中国 上海 联通
初级用户
积分 120
发帖 48
注册 2007-12-01 19:05
18年会员
UID 104373
性别 男
状态 离线
谢谢fastslz啊~~~每次求助都有人帮忙 太感动了,,,
有啥批处理的教程啊,我也想好好学学。
5 发表于 2007-12-19 16:56 ·  中国 黑龙江 大庆 联通
高级用户
★★
积分 547
发帖 261
注册 2006-04-15 16:50
20年会员
UID 53887
状态 离线
Originally posted by fastslz at 2007-12-19 09:54:
@echo off
for /f "tokens=2 delims=:" %%i in ('findstr /n . 1.txt^|findstr /b "1:"') do md %%i

tokens=2是选取文本第2列内容吗?
delims=:是用:做分隔符吗?文本中没有分号啊!
能否解释('findstr /n . 1.txt^|findstr /b "1:"')含义?
谢谢,等待中...
6 发表于 2007-12-19 17:14 ·  中国 上海 联通
初级用户
积分 120
发帖 48
注册 2007-12-01 19:05
18年会员
UID 104373
性别 男
状态 离线
1:内容
2:内容

tokens=2 第二个参数为内容,, :是分隔符

findstr /n 就是在匹配的每行前打印行数,,在每行的开始和1: 进行配对
在帮助里看到的,,还有^是什么意思,我也不知
7 发表于 2007-12-19 18:45 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
Originally posted by fastslz at 2007-12-19 09:54 AM:
@echo off
for /f "tokens=2 delims=:" %%i in ('findstr /n . 1.txt^|findstr /b "1:"') do md %%i


那是否也可以将文本的最后一行,当作文件的名字呢
是最后一行,不是第三行;)
8 发表于 2007-12-19 19:11 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
Originally posted by huahua0919 at 2007-12-19 18:45:


那是否也可以将文本的最后一行,当作文件的名字呢
是最后一行,不是第三行;)

未行应该可以:

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

另第一行也可以这样的:

@echo off
for /f "delims=" %%a in (a.txt) do if not defined fss set fss="%%a"
md %fss%
简单!简单!再简单!
9 发表于 2007-12-19 19:16 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
简单!简单!再简单!

第一行用的很妙!
10 发表于 2007-12-19 20:09 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线

@echo off
for /f "delims=" %%i in (a.txt) do md "%%i" &exit
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
kissbill +2 2008-11-15 00:28
11 发表于 2007-12-20 00:48 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
set/p file=<a.txt
md %file%
12 发表于 2007-12-23 10:43 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
Originally posted by lxmxn at 2007-12-20 12:48 AM:
set/p file=<a.txt
md %file%



不得不佩服斑竹的功力!
那是否也可以用同样的方法将第二行创建为一个文件夹的名字?
13 发表于 2007-12-24 00:01 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
不行,此方法只能取文件的第一行。
14 发表于 2007-12-25 13:46 ·  中国 上海 移动
新手上路
积分 18
发帖 8
注册 2006-12-07 01:26
19年会员
UID 72769
性别 男
状态 离线
真是强,我以前碰到遇到一个问题。
想用findstr找文件中一个出现的字串的那一行文本。然后再从这一行里读出第7个字串是这样处理的。看看有没有更简便的方法呢?

%1 为想要查找的内容,

@FINDSTR /i %1 log.txt >temp01.txt
FOR /F "eol=; tokens=7 delims= " %%1 in (temp01.txt) do (
Echo %%1 > temp02.txt
goto :jump1
)

:jump1
15 发表于 2007-12-25 14:03 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
FINDSTR放到for里面
FOR /F "eol=; tokens=7 delims= " %%i in ('FINDSTR /i %1 log.txt') do Echo %%i
论坛跳转: