![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 19:17 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教一个文本排列问题 |
| 可打印版本 1,908 / 15 |
| 第1楼 haiyuey | 发表于 2009-04-20 23:51 |
| 新手上路 发帖 10 积分 10 | |
|
请教一个文本排列问题 文本为:
王一,2 王一,5 张二,4 张二,5 张二,8 刘三,2 求输出结果为: 王一,2 5 张二,4 5 8 刘三,2 [ Last edited by haiyuey on 2009-4-21 at 00:11 ] |
|
| 第2楼 haiyuey | 发表于 2009-04-21 03:21 |
| 新手上路 发帖 10 积分 10 | |
|
没人知道吗?
|
|
| 第3楼 hongewuyan | 发表于 2009-04-21 03:53 |
| 初级用户 发帖 29 积分 65 | |
|
以上代码我测试是可以的,不过需要你系统里面有sed这个命令,论坛上很好找到的,4.07版本以上应该可以. |
|
| 第4楼 tireless | 发表于 2009-04-21 04:23 |
| 银牌会员 发帖 1,122 积分 2,025 | |
| 第5楼 haiyuey | 发表于 2009-04-21 04:29 |
| 新手上路 发帖 10 积分 10 | |
|
三楼这个好像不行,数据换一个排列再执行就没用了!
[ Last edited by haiyuey on 2009-4-21 at 04:35 ] |
|
| 第6楼 haiyuey | 发表于 2009-04-21 04:34 |
| 新手上路 发帖 10 积分 10 | |
|
三楼的不行,四楼的应该可以,先谢过,再试下
|
|
| 第7楼 sady2009 | 发表于 2009-04-21 07:19 |
| 初级用户 发帖 60 积分 58 | |
|
名字是连着排列的吗? 还是打乱的?
|
|
| 第8楼 netbenton | 发表于 2009-04-21 07:27 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
不管是打乱,还是连着的都可以
[ Last edited by netbenton on 2009-4-21 at 05:29 ] |
|
| 第9楼 freeants001 | 发表于 2009-04-21 07:29 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
|
set "var2=%var:*,=%"中竟然可以使用通配符,感谢tireless的代码,学了一招,呵呵~~
|
|
| 第10楼 sady2009 | 发表于 2009-04-21 08:09 |
| 初级用户 发帖 60 积分 58 | |
|
终于看懂了8楼老大的代码
set #用的很妙,能把#开头的变量都列出来,再用for 处理。 不知道 cmd最大可以支持多少个变量. 有数量限制吗? |
|
| 第11楼 tireless | 发表于 2009-04-21 08:12 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
Re 10楼 http://technet.microsoft.com/en-us/library/bb490954.aspx
[ Last edited by tireless on 2009-4-21 at 08:14 ] |
|
| 第12楼 THENEWLIFE | 发表于 2009-04-21 22:16 |
| 初级用户 发帖 64 积分 78 | |
|
看了很长时间还是不怎么动下面这2句,还大大门帮忙解释下
set /p var=<"%file%" 这里的VAR=< 里面的这个“<”是转义符的意思吗 意思是把FILE的值附给 VAR吧,然后用SET /P做为输入吗 set "var2=%var:*,=%" & set var=!var:,%var:*,=%=! "var2=%var:*,=%" 里面的“*和,”的意思是把所有字符和逗号转换成空吗 var=!var:,%var:*,=%=!这句是一个变量替换的嵌套吧 意思是把%var:*,=%替换的值再和, 替换成空吗。看了很多这方便的资料 在实际应用上就不知道怎么下手,不知道我理解的对吗,还请大大门指点,最好举个实例解释下,谢谢了~ |
|
| 第13楼 jmz573515 | 发表于 2009-04-21 22:43 |
| 银牌会员 发帖 464 积分 1,212 | |
| 第14楼 freeants001 | 发表于 2009-04-22 00:17 |
| 中级用户 发帖 244 积分 330 来自 湖北 | |
| 第15楼 tireless | 发表于 2009-04-22 00:40 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
Re 12楼 < 是重定向符号。
set /p var= 默认是从控制台(键盘)接受输入源,这句等同于 set /p var=<con。把 con 换成文件,就是把文件作为输入源了。而变量只允许一行字符,所以只有文件的第一行设为了 var 的值。 %var:*,=% 是把第一个 , 及前面所有字符替换为空。 只有这一种通配符用法,其他的如 %var:,*=%、%var:?,=% 都无效。 !var:,%var:*,=%=! 假设 var=王一,2 %var:*,=% 取得的值是 2,然后 !var:,2=! 取得的值是 王一。 [ Last edited by tireless on 2009-4-22 at 09:13 ] |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |