![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 01:01 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教:文件内容的判断和字符替换的批处理 |
| 可打印版本 4,388 / 16 |
| 第1楼 yangzhiyi | 发表于 2006-10-29 06:27 |
| 中级用户 发帖 123 积分 261 | |
|
请教:文件内容的判断和字符替换的批处理 先判断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 ] |
|
| 第2楼 redtek | 发表于 2006-10-29 07:01 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
这是不是太个性化了?哈哈……
而且全是中文的看得非常不习惯:) 还不如直接汉化Ping.exe~:) |
|
| 第3楼 lxmxn | 发表于 2006-10-29 07:17 |
| 版主 发帖 4,938 积分 11,386 | |
|
呵呵。。同意楼上的。。 既然楼主已经知道了里面英文的意思,何必要改成中文的不可呢?而且看起来比较别扭。。 =_= |
|
| 第4楼 electronixtar | 发表于 2006-10-29 07:32 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
偷偷的告诉大家,Vista里的Ping是被汉化过的
|
|
| 第5楼 yangzhiyi | 发表于 2006-10-29 07:44 |
| 中级用户 发帖 123 积分 261 | |
|
各位说得对,我就是想汉化ping 返回的信息,
我当然是明白那些意思,但是我做这个是给不会的人用的,所以还有麻烦各位帮帮忙了。 如果替换太麻烦,可先做判断的。ping 好像只会返回5种信息。 [ Last edited by yangzhiyi on 2006-10-29 at 08:06 AM ] |
|
| 第6楼 yangzhiyi | 发表于 2006-10-29 07:53 |
| 中级用户 发帖 123 积分 261 | |
Originally posted by electronixtar at 2006-10-29 07:32: 我的删掉了,发个汉化的ping.exe 上来用下。 |
|
| 第7楼 redtek | 发表于 2006-10-29 10:01 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
没想到还真有中文化的Ping~:)
给electronixtar加2分! |
|
| 第8楼 lxmxn | 发表于 2006-10-29 11:13 |
| 版主 发帖 4,938 积分 11,386 | |
|
建议楼主在 Vista 里面把 ping 命令提取出来,放到NT的系统目录里,直接使用,不知道兼不兼容哈。 |
|
| 第9楼 electronixtar | 发表于 2006-10-29 12:45 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
早说过了嘛,提示 “不是有效的Win32程序”
|
|
| 第10楼 youxi01 | 发表于 2006-10-29 22:53 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
@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 说明:以上代码未能完全满足楼主的要求,翻译的不是很准确。 还有楼主内容的判断,在此也不做判断了。 |
|
| 第11楼 不得不爱 | 发表于 2006-10-29 23:50 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
下面的代码是错误的!set后面不能有2个=不过后面的等可以写成^=
set Sent=已发送= set Received=已收到= set Lost=已丢失= set loss)=丢失) set Minimum=最小值= set Maximum=最大值= set Average=平均值= |
|
| 第12楼 youxi01 | 发表于 2006-10-30 00:02 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
它会默认第一个=的了
显示效果同楼上版主 |
|
| 第13楼 ccwan | 发表于 2006-10-30 01:20 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
youxi01所说我已测试,成功。
欢迎youxi01,你还在批处理吧混吗? |
|
| 第14楼 youxi01 | 发表于 2006-10-30 02:36 |
| 高级用户 发帖 247 积分 846 来自 湖南==》广东 | |
|
哈哈,是啊。
时常也逛逛这里啊,学到了不少的东西。 |
|
| 第15楼 yangzhiyi | 发表于 2006-10-31 02:15 |
| 中级用户 发帖 123 积分 261 | |
Originally posted by youxi01 at 2006-10-29 22:53: 谢谢,但是超时就不正确了,能否整句替换啊? 后面的也不明白什么意思能解释一下吗?我想要生成文件来使用 |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |