中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-08 10:32
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 文本输出小考验(看似容易)
可打印版本  1,061 / 13
第1楼 bat-zw 发表于 2008-04-29 00:36
金牌会员 发帖 1,276 积分 3,105
文本输出小考验(看似容易)
有a.txt内容如下:

要求通过批处理输出如下:
1aa0s
123bbhs001
779qq002
即删除字母以前所有的0。
第2楼 pusofalse 发表于 2008-04-29 00:46
银牌会员 发帖 646 积分 1,604
貌似还是得用变量截取和移位,一次皆两个,判断后面的是否小于a 如果小于a在判断前面的那个是不是0 是0就删除 我的思路~

[ Last edited by pusofalse on 2008-4-29 at 12:48 AM ]
第3楼 bat-zw 发表于 2008-04-29 00:47
金牌会员 发帖 1,276 积分 3,105
写出来看看,我觉得你想得复杂了点。
第4楼 pusofalse 发表于 2008-04-29 01:02
银牌会员 发帖 646 积分 1,604
看了你那篇帖子我知道了~ 除以100取余!~
但能不能写出来是个问题。。。
第5楼 bat-zw 发表于 2008-04-29 01:12
金牌会员 发帖 1,276 积分 3,105
提示:解这个问题还是用截取字符方便点。
第6楼 26933062 发表于 2008-04-29 01:16
银牌会员 发帖 879 积分 2,268
是删除第一个字母前面所有的0吗?
1aa0s
a和s中间的这个0不要删除是吗?
第7楼 bat-zw 发表于 2008-04-29 01:18
金牌会员 发帖 1,276 积分 3,105
是的
第8楼 pusofalse 发表于 2008-04-29 01:25
银牌会员 发帖 646 积分 1,604
能提示一下怎样才能判断出 0在字母前面吗?
第9楼 bat-zw 发表于 2008-04-29 01:30
金牌会员 发帖 1,276 积分 3,105
判断字母就是的
第10楼 26933062 发表于 2008-04-29 01:31
银牌会员 发帖 879 积分 2,268
看来得先判断出第几位不是数字,这样就得一个一个截取,不知道有没有更高效的办法?
第11楼 bat-zw 发表于 2008-04-29 01:33
金牌会员 发帖 1,276 积分 3,105
我还是来抛块砖了:
第12楼 qwd 发表于 2008-04-29 01:52
初级用户 发帖 56 积分 161
这是删除最后字母前的所有0字符!

@echo off
set/p h=输入字串
:js
set/a l+=1
call set "w=%%h:~-%l%%%"
echo %w%|findstr/i &&goto zq ||goto js
:zq
call set "q=%%h:~0,-%l%%%"
set "q=%q:0=%"
echo %q%%w%
pause

删除第一个字母前面的0字符略有改动就行了!还用写吗?
@echo off
set/p h=输入字串
:js
set/a l+=1
call set "q=%%h:~,%l%%%"
echo %q%|findstr/i >nul &&goto zq ||goto js
:zq
set "q=%q:0=%"
call set "w=%%h:~%l%%%"
echo %q%%w%
pause

[ Last edited by qwd on 2008-4-29 at 04:04 AM ]
第13楼 26933062 发表于 2008-04-29 01:58
银牌会员 发帖 879 积分 2,268
:
第14楼 xvzheng 发表于 2008-04-29 23:24
新手上路 发帖 7 积分 14
很复杂吗??????
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023