![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-08 05:39 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 难题:对文本中所有数值加1 |
| 可打印版本 823 / 7 |
| 第1楼 bat-zw | 发表于 2008-04-18 20:28 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
难题:对文本中所有数值加1 a.txt内容如下:
要求通过批处理生成b.txt内容如下,即对a.txt中所有数值加1(满10归0),但其它的不变: 注:并不知道任一字符串的长度 [ Last edited by zw19750516 on 2008-4-18 at 08:32 PM ] |
|
| 第2楼 bat-zw | 发表于 2008-04-18 20:31 |
| 金牌会员 发帖 1,276 积分 3,105 | |
|
我先来抛砖吧: [ Last edited by zw19750516 on 2008-4-18 at 09:11 PM ] |
|
| 第3楼 terse | 发表于 2008-04-18 21:00 |
| 银牌会员 发帖 946 积分 2,404 | |
|
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.txt) do set "str=%%i"& call:lp pause goto :eof :lp if defined str ( set str1=!str:~0,1! for %%i in (0 1 2 3 4 5 6 7 8 9) do if "!str1!"=="%%i" set/a str1+=1&goto :lp1 :lp1 set str2=!str2!!str1:~-1! set str=!str:~1! goto lp ) echo !str2! set str2= |
|
| 第4楼 26933062 | 发表于 2008-04-18 21:15 |
| 银牌会员 发帖 879 积分 2,268 | |
| 第5楼 pusofalse | 发表于 2008-04-18 21:17 |
| 银牌会员 发帖 646 积分 1,604 | |
|
高!竟然有这招,判断str的值是否为空
请教一下 最后set str2=是什么意思? 如果去掉 会显示 47d6c5107a6974f5f5683d2z710 47d6c5107a6974f5f5683d2z710 567-d_fhs345f234hi85610324 47d6c5107a6974f5f5683d2z710 567-d_fhs345f234hi85610324 gh64287ffsfj_85935646-fj5 |
|
| 第6楼 bat-zw | 发表于 2008-04-18 21:25 |
| 金牌会员 发帖 1,276 积分 3,105 | |
Originally posted by 26933062 at 2008-4-18 21:15: |
|
| 第7楼 bat-zw | 发表于 2008-04-18 21:32 |
| 金牌会员 发帖 1,276 积分 3,105 | |
Originally posted by pusofalse at 2008-4-18 21:17: set str=就是清空变量str以便下一次的追加赋值。 |
|
| 第8楼 pusofalse | 发表于 2008-04-18 21:43 |
| 银牌会员 发帖 646 积分 1,604 | |
|
谢谢!又学到了新东西~
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |