中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: DOS下有没有截取字段的命令 上一主题 | 下一主题
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『楼 主』:  DOS下有没有截取字段的命令

如题,例如一个文件的一行是以空格,:,或者tab这样的字符分隔,可否将他们截取出来?

123:456:789
123 456 789
可以把123, 456,按照自己的要求截取出来?

2007-4-28 01:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

可以,用for /f可以截取你想要的,搜索一下吧,很多讨论了。

2007-4-28 01:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『第 3 楼』:  

好的,谢谢斑竹

2007-4-28 02:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『第 4 楼』:  

还有一个问题没有找到,就是要是在字段数量不一定的情况下,该怎么写啊?

2007-4-28 12:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 5 楼』:  

字段数量不一定,就要根据情况来使用变量的字符截取功能了,或者结合for命令来解决。

2007-4-28 12:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





积分 3946
发帖 1884
注册 2006-1-20
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by lxmxn at 2007-4-28 01:59:
可以,用for /f可以截取你想要的,搜索一下吧,很多讨论了。

版主,dos下有for/ f吗?是CMD下吧?
有的话,就太方便了。



Windows 一键还原
http://www.yjhy.com
2007-4-28 20:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  

Re lianjiang2004:

呵呵,我说的就是在CMD下面,也不知道DOS下面有没有,没有安装DOS。o_O

2007-4-29 02:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『第 8 楼』:  

再问一个问题,我向在循环中计数,但是一下的代码不行
@echo off
set it=0
for /L %%i in (1,1,5) do (
        set /a it=it+1
        echo %it%
)
回到命令行后用echo查看变量是变了的,但是输出却都是0,请问这是什么问题。我是想在不用/L和%%i的情况下计数,所以不用echo %%i

2007-4-30 00:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 9 楼』:  

搜索一下“变量延迟” or “SetLocal”。
@echo off&setlocal EnableDelayedExpansion
set it=0
for /L %%i in (1,1,5) do (
        set /a it+=1
        echo !it!
)
pause


2007-4-30 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『第 10 楼』:  

谢谢版主,已经弄清楚了,还有一个问题,我最近编一个批处理的时候,要用一个程序过滤dir的输出,可是我发现用管道竟然比先把dir的结果写入一个文件,在用过滤程序过滤这个文件要慢,个人觉得管道应该更加快才是啊,不知道是什么原因呢?谢谢版主这几次的帮助

2007-5-1 11:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『第 11 楼』:  

还有,我想知道自己的脚本的大概执行时间,不知道应该如何计算?

2007-5-1 11:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『第 12 楼』:  

用echo如何输出像tab,backspace这样的特殊字符啊?

2007-5-1 12:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 13 楼』:  

Re paulhybryant:

1、用dir过滤之后再写入文件要比写入文件之后再过滤慢了,dir每输出一行就过滤一次,而用文件过滤,一次性把内容放在系统缓冲区,再来一起过滤,流程不一样,处理的速度自然不一样了;

2、计算脚本你运行时间,可以在脚本前后分别加上一句 echo %time% ,再来比较它们的差值;

3、输出tab或者backspace,可以这样:echo\[tab] 、echo\[backspace]。

2007-5-1 22:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『第 14 楼』:  

谢谢斑竹,我用echo\[tab],输出的是[tab],不是制表符啊,请问是我那里搞错了?

2007-5-2 20:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
paulhybryant
初级用户





积分 31
发帖 16
注册 2007-4-21
状态 离线
『第 15 楼』:  

如果我想输出一个字符,包括特殊字符在内,入\r,\n这些,能够用制定ascii的方式输出么?不好意思,问了这么多,谢谢斑竹了

2007-5-2 22:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: