![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 09:46 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教:纯 DOS 下带有空格的字符串处理问题 |
| 可打印版本 994 / 9 |
| 第1楼 jmlvww | 发表于 2009-02-19 11:40 |
| 新手上路 发帖 4 积分 7 | |
|
请教:纯 DOS 下带有空格的字符串处理问题 有这么一个字符串
"abcdefg1234 efdafda" 不包含"",中间是若干个空格 请问在纯 DOS 下有办法取到 abcdefg1234 吗? [ Last edited by jmlvww on 2009-2-19 at 11:42 ] |
|
| 第2楼 sady2009 | 发表于 2009-02-19 12:02 |
| 初级用户 发帖 60 积分 58 | |
|
@echo off
for /f "tokens=1,2 delims= " %%i IN (a.txt) DO @echo %%i%%j > b.txt 这样可以吗? 将字串保存为a.txt 输出为b.txt 小弟还很菜,学习来了 |
|
| 第3楼 jmlvww | 发表于 2009-02-19 12:38 |
| 新手上路 发帖 4 积分 7 | |
|
for /f "tokens=1,2 delims= " %%i IN (a.txt) DO @echo %%i%%j > b.txt
Syntax error,纯 DOS 下比较不好处理。 |
|
| 第4楼 zhengqian529 | 发表于 2009-02-19 17:17 |
| 初级用户 发帖 93 积分 100 来自 湖南 | |
|
楼上那句肯定是%%i这个位置有语法错误,仔细看看cmd提供的帮助, 在文件里面参数要写为%%i, 但是如果实在命令行执行的时候就使用:%i
PS: 关于取字符串的问题,可以参考 for /?, 学好for,这问题就容易了.论坛有很多学习贴,搜索以下. [ Last edited by zhengqian529 on 2009-2-19 at 17:18 ] |
|
| 第5楼 Sufone | 发表于 2009-02-19 17:30 |
| 中级用户 发帖 124 积分 256 | |
Originally posted by zhengqian529 at 2009-2-19 17:17: 楼主要求是“纯DOS”,在纯DOS中执行2楼的命令必定会报错 |
|
| 第6楼 zhengqian529 | 发表于 2009-02-19 17:36 |
| 初级用户 发帖 93 积分 100 来自 湖南 | |
|
哦.http://www.cn-dos.net/forum/viewthread.php?tid=30980 这个帖子提到使用第三方软件strings,不知道对楼主有帮助不?
纯dos下提取日期时间 http://www.cn-dos.net/forum/viewthread.php?tid=45389&fpage=1&highlight=%E7%BA%AFdos [ Last edited by zhengqian529 on 2009-2-19 at 17:40 ] |
|
| 第7楼 jmlvww | 发表于 2009-02-19 18:08 |
| 新手上路 发帖 4 积分 7 | |
|
strings 试过了,思路是用 find 查找连续几个空格,然后从第一个字符开始取。
问题是 strings 不支持查找字符为空格的。 |
|
| 第8楼 lianjiang2004 | 发表于 2009-02-19 22:23 |
| 金牌会员 发帖 1,884 积分 3,946 | |
|
用nset处理,搜索一下就行了。
|
|
| 第9楼 DOSforever | 发表于 2009-02-20 00:10 |
| 金牌会员 发帖 2,239 积分 4,639 | |
|
4DOS 的一个 @word 变量函数就解决了
@word[0,abcdefg1234 efdafda] |
|
| 第10楼 netbenton | 发表于 2009-02-21 12:25 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
如果内容已经在变量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 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |