Board logo

标题: 请教:纯 DOS 下带有空格的字符串处理问题 [打印本页]

作者: jmlvww     时间: 2009-2-19 11:40    标题: 请教:纯 DOS 下带有空格的字符串处理问题
有这么一个字符串 "abcdefg1234 efdafda" 不包含"",中间是若干个空格 请问在纯 DOS 下有办法取到 abcdefg1234 吗? [ Last edited by jmlvww on 2009-2-19 at 11:42 ]

作者: sady2009     时间: 2009-2-19 12:02
@echo off for /f "tokens=1,2 delims= " %%i IN (a.txt) DO @echo %%i%%j > b.txt 这样可以吗? 将字串保存为a.txt 输出为b.txt 小弟还很菜,学习来了

作者: jmlvww     时间: 2009-2-19 12:38
for /f "tokens=1,2 delims= " %%i IN (a.txt) DO @echo %%i%%j > b.txt Syntax error,纯 DOS 下比较不好处理。

作者: zhengqian529     时间: 2009-2-19 17:17
楼上那句肯定是%%i这个位置有语法错误,仔细看看cmd提供的帮助, 在文件里面参数要写为%%i, 但是如果实在命令行执行的时候就使用:%i PS: 关于取字符串的问题,可以参考 for /?, 学好for,这问题就容易了.论坛有很多学习贴,搜索以下. [ Last edited by zhengqian529 on 2009-2-19 at 17:18 ]

作者: Sufone     时间: 2009-2-19 17:30
Originally posted by zhengqian529 at 2009-2-19 17:17: 楼上那句肯定是%%i这个位置有语法错误,仔细看看cmd提供的帮助, 在文件里面参数要写为%%i, 但是如果实在命令行执行的时候就使用:%i PS: 关于取字符 ...
楼主要求是“纯DOS”,在纯DOS中执行2楼的命令必定会报错

作者: zhengqian529     时间: 2009-2-19 17:36
哦.www.cn-dos.net/forum ... 这个帖子提到使用第三方软件strings,不知道对楼主有帮助不? 纯dos下提取日期时间 www.cn-dos.net/forum ... [ Last edited by zhengqian529 on 2009-2-19 at 17:40 ]

作者: jmlvww     时间: 2009-2-19 18:08
strings 试过了,思路是用 find 查找连续几个空格,然后从第一个字符开始取。 问题是 strings 不支持查找字符为空格的。

作者: lianjiang2004     时间: 2009-2-19 22:23
用nset处理,搜索一下就行了。

作者: DOSforever     时间: 2009-2-20 00:10
4DOS 的一个 @word 变量函数就解决了 @word[0,abcdefg1234 efdafda]

作者: netbenton     时间: 2009-2-21 12:25
如果内容已经在变量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