中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-14 19:02
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何提取 <字母+数字>组合中的数字
楼 主 如何提取 <字母+数字>组合中的数字 发表于 2006-12-28 04:59 ·  中国 湖南 郴州 电信
初级用户
积分 66
发帖 28
注册 2006-11-01 04:54
UID 69099
性别 男
状态 离线
用户输入 字母和数字的组合。。比如 home001
我要如何才能提取001
字母和数字都不限长度。。
不知道批处理能不能实现.
望高手指点.论坛里没有搜到相关资料
2 发表于 2006-12-28 06:12 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  数字和字母有可能是混杂的吗?还是数字是一截,字母是另外一截?
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
3 发表于 2006-12-28 06:19 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
UID 74552
性别 男
状态 离线
我见过一例,要用字典

setlocal enabledelayedexpansion
set /p a=..
set b=%a%
for /f %%i in (dict.txt) do set b=!b:%%i=!
记不清了
4 发表于 2006-12-28 06:28 ·  中国 湖南 郴州 电信
初级用户
积分 66
发帖 28
注册 2006-11-01 04:54
UID 69099
性别 男
状态 离线
Originally posted by namejm at 2006-12-28 06:12 AM:
  数字和字母有可能是混杂的吗?还是数字是一截,字母是另外一截?

是的。前面是字母。后面是数字。
这个是固定的。
5 发表于 2006-12-28 06:33 ·  中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
UID 61449
来自 北京
状态 离线
不管你的数字和文字是否混杂,全办,呵呵......
没有测试特殊符号

@echo off&setlocal
set/p aa=Enter your text:
call :pp
echo %b%
goto :eof
:pp
:loop
if not defined aa goto :eof
echo %aa:~0,1%|findstr "">nul&&set b=%b%%aa:~0,1%
set aa=%aa:~1%&goto loop
goto :eof

不过感觉这段代码有些臃肿

[ Last edited by 9527 on 2006-12-28 at 06:34 AM ]
我今后在论坛的目标就是做个超级坏人!!!
6 发表于 2006-12-28 06:35 ·  中国 北京 朝阳区 联通
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
UID 67972
状态 离线
直接把字母替换没就可以!

认识自己,降伏自己,改变自己
,才能改变别人!
7 发表于 2006-12-28 06:36 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
精彩!!!欣赏~~~
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
8 发表于 2006-12-28 06:41 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
set "var=abc123 &^*"
echo "%var%"|sed "s/^\x22//;s/\x22$//;s/[a-z]//g"
9 发表于 2006-12-28 07:08 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
UID 51697
来自 成都
状态 离线
  呵呵,其实我只是想问问楼主,只截取指定的某一段数字还是提取字符串中所有的数字。如果只是提取所有的数字的话,那就好办得多,直接把字母替换成空值就可以了,但是楼主的本意似乎不是这样。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
10 发表于 2006-12-28 08:29 ·  中国 北京 顺义区 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
UID 61449
来自 北京
状态 离线
那就请namejm大版主把楼主所需要的代码放出来吧,也让我们这些晚辈多多学习....
我今后在论坛的目标就是做个超级坏人!!!
11 发表于 2006-12-28 08:36 ·  中国 广西 南宁 联通
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
Originally posted by mouzeming at 2006-12-27 17:28:

是的。前面是字母。后面是数字。
这个是固定的。

按楼主说法,数据前面是字母。后面是数字,是固定的,那 namejm 版主就不用担心字母数字混杂了

@echo off
set "var=abc123"
for %%n in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do call set var=%%var:%%n=%%
echo %var%
pause
12 发表于 2006-12-28 11:28 ·  中国 湖南 郴州 电信
初级用户
积分 66
发帖 28
注册 2006-11-01 04:54
UID 69099
性别 男
状态 离线
谢谢大家了。。明天在公司试下。。

b=%b%%aa:~0,1%

set "var=abc123 &^*"
echo "%var%"|sed "s/^\x22//;s/\x22$//;s/[a-z]//g"

set var=%%var:%%n=%%

这些麻烦大家解释下。实在是看不懂。搜索也无从下手.!
13 发表于 2006-12-28 11:46 ·  中国 广西 南宁 联通
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
UID 44210
状态 离线
8 楼的要“sed”这个软件
14 发表于 2006-12-28 11:57 ·  中国 北京 东城区 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
UID 63324
性别 男
状态 离线
顶~~欣赏~~~!!!
    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
15 发表于 2006-12-28 21:59 ·  中国 辽宁 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
UID 73417
性别 男
状态 离线
有一个想法,不知道输入密码时能不能用到这种方法?
论坛跳转: