|
yangzhiyi
中级用户
积分 261
发帖 123
注册 2006-6-6
状态 离线
|
『楼 主』:
请教:文件内容的判断和字符替换的批处理
先判断1.txt的文件内容,
1.如果有 Lost = 4 则在文件后面加上 测试不通过,
2.如果有 Reply from 则在文件后面加上 测试通过
3.如果是 Ping request could not find host www.*.com Please check the name and try again. 则在文件后面加上 无法解析目标主机名。
4.如果有 TTL Expired in Transit 则在文件后面加上 所需跃点的数目超过了“生存时间”(TTL)。
5.如果是 Destination Host Unreachable 则在文件后面加上 在发送主机或路由器上不存在目标主机的本地或远程路由。
_______________________________________________
如果有下面这样这样信息
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Request timed out.
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Reply from 127.0.0.1: bytes=32 time<1ms TTL=64
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
______________________________________________________
则替换成下面这样 。
______________________________________________________
正在用 32 字节数据 Ping 127.0.0.1: (替换成这样也行 Pinging 127.0.0.1 正在用 32 字节数据发送)
应答来自 127.0.0.1: 字节=32 时间<1ms TTL=64
应答超时.
应答来自 127.0.0.1: 字节=32 时间<1ms TTL=64
应答来自 127.0.0.1: 字节=32 时间<1ms TTL=64
127.0.0.1 的 Ping 统计: (替换成这样也行 Ping 统计为 127.0.0.1:)
包: 已发送 = 4,已收到 = 4,已丢失 = 0 (0% 丢失)
以毫秒为单位的大约来回行程的时间:
最小值 = 0ms, 最大值 = 0ms, 平均值 = 0ms
________________________________________________________
2000/XP等NT系统使用,使用系统的命令完成。
127.0.0.1 可能为其它 IP ,即还有2.txt、3.txt等文件 127.0.0.1可能为192.168.0.1或www.21cn.com等。
只是批处理中的一部分功能,可以使用 转跳、调用、生成等一切方式,但命令必须系统自带。
如果替换太麻烦,可先做判断的。ping 好像只会返回上面那5种结果。
先说声谢谢,可能星期一再看。
[ Last edited by yangzhiyi on 2006-10-29 at 08:12 AM ]
|
|
2006-10-29 06:27 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
2 楼』:
这是不是太个性化了?哈哈……
而且全是中文的看得非常不习惯:)
还不如直接汉化Ping.exe~:)
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2006-10-29 07:01 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
3 楼』:
呵呵。。同意楼上的。。
既然楼主已经知道了里面英文的意思,何必要改成中文的不可呢?而且看起来比较别扭。。 =_=
|
|
2006-10-29 07:17 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第
4 楼』:
偷偷的告诉大家,Vista里的Ping是被汉化过的
|
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |
|
2006-10-29 07:32 |
|
|
yangzhiyi
中级用户
积分 261
发帖 123
注册 2006-6-6
状态 离线
|
『第
5 楼』:
各位说得对,我就是想汉化ping 返回的信息,
我当然是明白那些意思,但是我做这个是给不会的人用的,所以还有麻烦各位帮帮忙了。
如果替换太麻烦,可先做判断的。ping 好像只会返回5种信息。
[ Last edited by yangzhiyi on 2006-10-29 at 08:06 AM ]
|
|
2006-10-29 07:44 |
|
|
yangzhiyi
中级用户
积分 261
发帖 123
注册 2006-6-6
状态 离线
|
『第
6 楼』:
Quote: | Originally posted by electronixtar at 2006-10-29 07:32:
偷偷的告诉大家,Vista里的Ping是被汉化过的 |
|
我的删掉了,发个汉化的ping.exe 上来用下。
|
|
2006-10-29 07:53 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
7 楼』:
没想到还真有中文化的Ping~:)
给electronixtar加2分!
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2006-10-29 10:01 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
8 楼』:
建议楼主在 Vista 里面把 ping 命令提取出来,放到NT的系统目录里,直接使用,不知道兼不兼容哈。
|
|
2006-10-29 11:13 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第
9 楼』:
早说过了嘛,提示 “不是有效的Win32程序”
|
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |
|
2006-10-29 12:45 |
|
|
youxi01
高级用户
积分 846
发帖 247
注册 2006-10-27 来自 湖南==》广东
状态 离线
|
『第
10 楼』:
@echo off
set for=于
set of=的
set with=用
set in=(以
set data:=数据
set milli-seconds:=毫秒为单位)
set Approximate=大约
set times=时间:
set round=来回
set trip=行程
set Reply=应答
set from=来自
set bytes=字节
set time=时间:
set timed=时间
set out=超过
set statistics=统计
set Packets:=包:
set Sent=已发送=
set Received=已收到=
set Lost=已丢失=
set loss)=丢失)
set Minimum=最小值=
set Maximum=最大值=
set Average=平均值=
set TTL=TTL=
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('ping www.21cn.com') do (
set ret=
for %%a in (%%i) do if defined %%a (set ret=!ret!!%%a!) else set ret=!ret! %%a
if not "!ret!"=="" (set ret=!ret:time=时间! && echo !ret!) else echo.
)
pause>nul
说明:以上代码未能完全满足楼主的要求,翻译的不是很准确。
还有楼主内容的判断,在此也不做判断了。
|
|
2006-10-29 22:53 |
|
|
不得不爱
超级版主
我爱DOS
积分 5310
发帖 2044
注册 2005-9-26 来自 四川南充
状态 离线
|
|
2006-10-29 23:50 |
|
|
youxi01
高级用户
积分 846
发帖 247
注册 2006-10-27 来自 湖南==》广东
状态 离线
|
『第
12 楼』:
它会默认第一个=的了
显示效果同楼上版主
|
|
2006-10-30 00:02 |
|
|
ccwan
金牌会员
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
13 楼』:
youxi01所说我已测试,成功。
欢迎youxi01,你还在批处理吧混吗?
|
|
2006-10-30 01:20 |
|
|
youxi01
高级用户
积分 846
发帖 247
注册 2006-10-27 来自 湖南==》广东
状态 离线
|
『第
14 楼』:
哈哈,是啊。
时常也逛逛这里啊,学到了不少的东西。
|
|
2006-10-30 02:36 |
|
|
yangzhiyi
中级用户
积分 261
发帖 123
注册 2006-6-6
状态 离线
|
『第
15 楼』:
Quote: | Originally posted by youxi01 at 2006-10-29 22:53:
@echo off
set for=于
set of=的
set with=用
set in=(以
set data:=数据
set milli-seconds:=毫秒为单位)
set Approximate=大约
set times=时间:
set round=来回
set trip=行程
s ... |
|
谢谢,但是超时就不正确了,能否整句替换啊?
后面的也不明白什么意思能解释一下吗?我想要生成文件来使用
|
|
2006-10-31 02:15 |
|