中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-29 10:10
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » DOS下有没有截取字段的命令 查看 2,131 回复 16
楼 主 DOS下有没有截取字段的命令 发表于 2007-04-28 01:49 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
如题,例如一个文件的一行是以空格,:,或者tab这样的字符分隔,可否将他们截取出来?

123:456:789
123 456 789
可以把123, 456,按照自己的要求截取出来?
2 发表于 2007-04-28 01:59 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
可以,用for /f可以截取你想要的,搜索一下吧,很多讨论了。
3 发表于 2007-04-28 02:13 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
好的,谢谢斑竹
4 发表于 2007-04-28 12:42 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
还有一个问题没有找到,就是要是在字段数量不一定的情况下,该怎么写啊?
5 发表于 2007-04-28 12:58 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
字段数量不一定,就要根据情况来使用变量的字符截取功能了,或者结合for命令来解决。
6 发表于 2007-04-28 20:25 ·  中国 安徽 马鞍山 电信
金牌会员
★★★★
积分 3,946
发帖 1,884
注册 2006-01-20 13:00
20年会员
UID 49283
性别 男
状态 离线
Originally posted by lxmxn at 2007-4-28 01:59:
可以,用for /f可以截取你想要的,搜索一下吧,很多讨论了。

版主,dos下有for/ f吗?是CMD下吧?
有的话,就太方便了。
Windows 一键还原
http://www.yjhy.com
7 发表于 2007-04-29 02:56 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
Re lianjiang2004:

呵呵,我说的就是在CMD下面,也不知道DOS下面有没有,没有安装DOS。o_O
8 发表于 2007-04-30 00:24 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
再问一个问题,我向在循环中计数,但是一下的代码不行
@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
9 发表于 2007-04-30 00:59 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
搜索一下“变量延迟” or “SetLocal”。

@echo off&setlocal EnableDelayedExpansion
set it=0
for /L %%i in (1,1,5) do (
set /a it+=1
echo !it!
)
pause
10 发表于 2007-05-01 11:07 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
谢谢版主,已经弄清楚了,还有一个问题,我最近编一个批处理的时候,要用一个程序过滤dir的输出,可是我发现用管道竟然比先把dir的结果写入一个文件,在用过滤程序过滤这个文件要慢,个人觉得管道应该更加快才是啊,不知道是什么原因呢?谢谢版主这几次的帮助
11 发表于 2007-05-01 11:12 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
还有,我想知道自己的脚本的大概执行时间,不知道应该如何计算?
12 发表于 2007-05-01 12:27 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
用echo如何输出像tab,backspace这样的特殊字符啊?
13 发表于 2007-05-01 22:56 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
Re paulhybryant:

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

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

3、输出tab或者backspace,可以这样:echo\[tab] 、echo\[backspace]。
14 发表于 2007-05-02 20:45 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
谢谢斑竹,我用echo\[tab],输出的是[tab],不是制表符啊,请问是我那里搞错了?
15 发表于 2007-05-02 22:43 ·  中国 广西 柳州 联通
初级用户
积分 31
发帖 16
注册 2007-04-21 02:38
19年会员
UID 85912
性别 男
状态 离线
如果我想输出一个字符,包括特殊字符在内,入\r,\n这些,能够用制定ascii的方式输出么?不好意思,问了这么多,谢谢斑竹了
论坛跳转: