中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 00:27
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于for命令中的分隔符? 查看 750 回复 5
楼 主 关于for命令中的分隔符? 发表于 2009-05-29 15:32 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
我有一文件t.txt
内容如下:
一:1 2,3 4,5 6,
二:2 3,4 5,6 7,


for /f "tokens=1* delims=:" %%a in ('findstr "一:" t.txt') do (
for %%e in (%%b) do (
echo %%e
)
运行后输出为
1
2
3
4
5
6
我想要的结果是:
1 2
3 4
5 6
for 命令没有/f参数就没法指定分隔符吗?默认的分隔符是空格和逗号吗?为什么有以上结果?
2 发表于 2009-05-29 22:31 ·  中国 北京 网宿科技
初级用户
积分 49
发帖 43
注册 2007-01-20 03:28
19年会员
UID 77088
性别 男
状态 离线
for 命令可以指定分隔符,你之前用的 delims=: 就是用冒号分隔了,默认是空格分隔。

改为下面语句就可以了:

for /f "tokens=1* delims=:" %%a in ('findstr "一:" t.txt') do (
for /f "tokens=1,2,3 delims=," %%e in ("%%b") do (
echo %%e
echo %%f
echo %%g
)
)
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
wjcing +1 2009-05-30 04:31
3 发表于 2009-05-30 02:09 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
Originally posted by tongzj at 2009-5-29 10:31 PM:
for 命令可以指定分隔符,你之前用的 delims=: 就是用冒号分隔了,默认是空格分隔。

改为下面语句就可以了:

for /f "tokens=1* delims=:" %%a in ( ...

不好意思..我没说清楚....我的这个一和二,是不固定的...
它现在是这样..
一:1 2,3 4,5 6,
二:2 3,4 5,6 7,
以后可能是这样了...
一:1 2,3 4,5 6,11 23,d dd,ddb ddc,
二:2 3,4 5,6 7,d dxd,
他是不固定的..所以不能用这种 tokens=1,2,3迭代.
谢谢.
4 发表于 2009-05-30 02:17 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
就如这句吧.
for %%e in (00000 00000,00000 00000,77777 7777,8888888 888888888888,) do ( echo %%e )
它的输出即是用了空格分隔也用了逗号分隔,我如果用
set _str=%%b
set _str=!_str: =^|!
把逗号换成"|"就正常输出了..我现在只是想知道为什么是会是这样输出,和不用把逗号替换的方法..谢谢.
5 发表于 2009-05-30 03:23 ·  中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
18年会员
UID 96653
性别 男
状态 离线
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%a in ('findstr "一:" t.txt') do (
set var=%%b
set var=!var:~,-1!
for %%a in ("!var:,=" "!") do echo %%~a
)
pause


for %%a in () 中的分隔符有 ,;=

[ Last edited by tireless on 2009-6-4 at 03:31 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
wjcing +2 2009-05-30 04:30
6 发表于 2009-05-30 04:31 ·  中国 广东 广州 天河区 电信
初级用户
★★
积分 71
发帖 59
注册 2007-12-27 17:53
18年会员
UID 106966
性别 男
状态 离线
谢谢了. .
论坛跳转: