中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-25 07:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]高手帮我编写一下截取指定数字的批处理。 查看 1,364 回复 14
楼 主 [已解决]高手帮我编写一下截取指定数字的批处理。 发表于 2010-11-25 21:06 ·  中国 福建 泉州 晋江市 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
文本txt文件最后一行如下:
"已完成" "呼叫已完成" "0x00000012" 11/24/2010 17:21:47 11/24/2010 17:23:31 "USB Data Fax Voice Modem" "C:\Documents and Settings\All Users\Application Data\Microsoft\Windows NT\MSFax\Queue\1CB8BB904D660.tif" 80054 "Fax" "Fax" "88888888" " " 4

要求只取"88888888"里的数字,这个数字位数可能会变化,不一定就是8位,还有整个行的字符长度也会变化,有什么办法可以只取到这里面的数字,而且不能多取也不能少取,哪位高手帮忙一下。

[ Last edited by ajian on 2010-12-3 at 16:50 ]
2 发表于 2010-11-25 21:18 ·  中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310
发帖 2,044
注册 2005-09-26 12:00
20年会员
UID 42843
性别 男
来自 四川南充
状态 离线
3 发表于 2010-11-25 21:20 ·  中国 福建 泉州 晋江市 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
不取,只取那个电话号码,其它一律不取。
4 发表于 2010-11-25 21:22 ·  中国 福建 泉州 晋江市 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
4要取也行,但得保存在另一个变量,4也可能会有位数变化,代表几页传真。
5 发表于 2010-11-25 21:28 ·  中国 北京 联通
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
for + shift
6 发表于 2010-11-25 22:25 ·  中国 福建 泉州 晋江市 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
不好意思,本人比较菜,能不能帮我写一下批处理?
7 发表于 2010-11-25 22:39 ·  中国 北京 联通
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
这样取的依据是它的位置一直是第 13 个

@echo off
set fn="C:\Documents and Settings\Ching Chum\Desktop\新建 文本文档.txt"
for /f "usebackq delims=" %%a in (%fn%) do set lastLine=%%a
call :getThe13thArg theNumber %lastLine%
echo 截取的数字是 %theNumber%
pause
goto :EOF

:getThe13thArg
set varName=%1
for /l %%i in (1,1,13) do shift /1
set %varName%=%1
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
ajian +1 2010-12-03 16:50
8 发表于 2010-11-25 23:32 ·  中国 福建 泉州 晋江市 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
不能根据位置,因为其它地方的字符都有可能会变化的。
9 发表于 2010-11-25 23:42 ·  中国 福建 泉州 晋江市 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
从后面截取的话,只要注意那个4有可能会变化,有时会有两个、三个数字,算起来比前面要简单。
10 发表于 2010-11-28 23:59 ·  中国 福建 泉州 晋江市 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
没人帮我了?
11 发表于 2010-11-29 10:51 ·  中国 湖北 黄石 电信
中级用户
★★
积分 330
发帖 244
注册 2006-04-14 14:07
20年会员
UID 53823
性别 男
来自 湖北
状态 离线

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%z in (test.txt) do (
set "var=%%z"
set "var=!var: = !"
for /f "tokens=11 delims= " %%a in ("!var!") do set "var=%%a"
echo.!var:"=!
)
pause
12 发表于 2010-11-29 12:18 ·  中国 吉林 延边朝鲜族自治州 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
楼主说指定的数字,却没有说如何定位到这个数字的规律,顺便说一下,0x00000012也是数字。。。

[ Last edited by Hanyeguxing on 2010-11-29 at 13:29 ]
13 发表于 2010-12-01 22:23 ·  中国 福建 泉州 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
确实没什么规律,真是比较麻烦。
14 发表于 2010-12-01 22:27 ·  中国 福建 泉州 电信
初级用户
积分 38
发帖 38
注册 2010-11-17 22:11
15年会员
UID 177740
性别 男
状态 离线
7楼的好像可以啊,太感谢了。
15 发表于 2010-12-08 16:31 ·  中国 广东 深圳 诺瓦科技发展有限公司
新手上路
积分 18
发帖 18
注册 2010-12-06 16:28
15年会员
UID 178780
性别 男
状态 离线
学习了..批处理这么强大?
论坛跳转: