中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教:纯 DOS 下带有空格的字符串处理问题
作者:
标题: 请教:纯 DOS 下带有空格的字符串处理问题 上一主题 | 下一主题
jmlvww
新手上路





积分 7
发帖 4
注册 2006-12-31
状态 离线
『楼 主』:  请教:纯 DOS 下带有空格的字符串处理问题

有这么一个字符串

"abcdefg1234                           efdafda"

不包含"",中间是若干个空格

请问在纯 DOS 下有办法取到 abcdefg1234 吗?

[ Last edited by jmlvww on 2009-2-19 at 11:42 ]

2009-2-19 11:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sady2009
初级用户





积分 58
发帖 60
注册 2009-2-18
状态 离线
『第 2 楼』:  

@echo off
for /f "tokens=1,2 delims= " %%i IN (a.txt) DO @echo %%i%%j > b.txt

这样可以吗? 将字串保存为a.txt 输出为b.txt

小弟还很菜,学习来了

2009-2-19 12:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jmlvww
新手上路





积分 7
发帖 4
注册 2006-12-31
状态 离线
『第 3 楼』:  

for /f "tokens=1,2 delims= " %%i IN (a.txt) DO @echo %%i%%j > b.txt

Syntax error,纯 DOS 下比较不好处理。

2009-2-19 12:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhengqian529
初级用户





积分 100
发帖 93
注册 2009-1-14
来自 湖南
状态 离线
『第 4 楼』:  

楼上那句肯定是%%i这个位置有语法错误,仔细看看cmd提供的帮助, 在文件里面参数要写为%%i,  但是如果实在命令行执行的时候就使用:%i

PS:  关于取字符串的问题,可以参考 for /?, 学好for,这问题就容易了.论坛有很多学习贴,搜索以下.

[ Last edited by zhengqian529 on 2009-2-19 at 17:18 ]

2009-2-19 17:17
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (250988158)  编辑帖子  回复  引用回复
Sufone
中级用户





积分 256
发帖 124
注册 2007-12-18
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by zhengqian529 at 2009-2-19 17:17:
楼上那句肯定是%%i这个位置有语法错误,仔细看看cmd提供的帮助, 在文件里面参数要写为%%i,  但是如果实在命令行执行的时候就使用:%i

PS:  关于取字符 ...

楼主要求是“纯DOS”,在纯DOS中执行2楼的命令必定会报错

2009-2-19 17:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhengqian529
初级用户





积分 100
发帖 93
注册 2009-1-14
来自 湖南
状态 离线
『第 6 楼』:  

哦.http://www.cn-dos.net/forum/viewthread.php?tid=30980  这个帖子提到使用第三方软件strings,不知道对楼主有帮助不?

纯dos下提取日期时间
http://www.cn-dos.net/forum/view ... hlight=%E7%BA%AFdos

[ Last edited by zhengqian529 on 2009-2-19 at 17:40 ]

2009-2-19 17:36
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (250988158)  编辑帖子  回复  引用回复
jmlvww
新手上路





积分 7
发帖 4
注册 2006-12-31
状态 离线
『第 7 楼』:  

strings 试过了,思路是用 find 查找连续几个空格,然后从第一个字符开始取。

问题是 strings 不支持查找字符为空格的。

2009-2-19 18:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lianjiang2004
金牌会员





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

用nset处理,搜索一下就行了。



Windows 一键还原
http://www.yjhy.com
2009-2-19 22:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
DOSforever
金牌会员





积分 4639
发帖 2239
注册 2005-1-30
状态 离线
『第 9 楼』:  

4DOS 的一个 @word 变量函数就解决了

@word[0,abcdefg1234                           efdafda]



DOS倒下了,但永远不死
DOS NEVER DIES !

投票调查:
http://www.cn-dos.net/forum/viewthread.php?tid=46187

本人尚未解决的疑难问题:
http://www.cn-dos.net/forum/viewthread.php?tid=15135
http://www.cn-dos.net/forum/viewthread.php?tid=47663
http://www.cn-dos.net/forum/viewthread.php?tid=48747
2009-2-20 00:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 10 楼』:  

如果内容已经在变量str,那好办:
写一个bbb.bat,内容如下:
set str1=%1
set str2=%2


执行:
call bbb.bat %str%


如果串在a.txt的第一行,也有个办法:
1.用debug 写一个只有一行内容(不能换行)的aaa.bat,内容(不带引号):"bbb "
2.编辑一个bbb.bat,内容为:
set str1=%1
set str2=%2

执行:
type a.txt>>aaa.bat
call aaa
则得到变量:
str1=abcdefg1234
str2=efdafda



精简
[你的+我的+他的]=>[大家的]    个人网志   
2009-2-21 12:25
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: