![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-02 05:54 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [疑难]自己写的脚本,隐含有错误,但检查不出,请大家帮忙 |
| 可打印版本 929 / 10 |
| 第1楼 yardian | 发表于 2006-10-20 06:15 |
| 中级用户 发帖 85 积分 305 | |
|
[疑难]自己写的脚本,隐含有错误,但检查不出,请大家帮忙 经过两天的时间,在论坛里发贴求教,终于写出了一个基本满足自己需求的脚本.可是但偶尔还是会中途自动退出.特上来请大家帮忙检查一下:
[ Last edited by yardian on 2006-10-20 at 09:28 ] |
|
| 第2楼 yardian | 发表于 2006-10-20 06:16 |
| 中级用户 发帖 85 积分 305 | |
|
说明一下:其中有几处没实现的地方用注释指出了
另外: if not exist %ciscoios% goto reinput 这句的作用是想验证当手动输入的时候,其是否存在,但当ciscoios为空的时候,会提示:'reinput' 不是内部或外部命令,也不是可运行的程序或批处理文件。 不知如何解决. [ Last edited by yardian on 2006-10-20 at 15:24 ] |
|
| 第3楼 lxmxn | 发表于 2006-10-20 06:22 |
| 版主 发帖 4,938 积分 11,386 | |
|
我想楼主最好把这个批处理的作用和实现思路和大伙说一下比较好…… |
|
| 第4楼 namejm | 发表于 2006-10-20 06:33 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
请把 idlepc.txt 等文件的内容贴一部分出来,以便于查错。感觉这段代码还可大为精简。
|
|
| 第5楼 electronixtar | 发表于 2006-10-20 06:56 |
| 铂金会员 发帖 2,672 积分 7,493 | |
|
好东东,快全部发上来啊
|
|
| 第6楼 yardian | 发表于 2006-10-20 09:13 |
| 中级用户 发帖 85 积分 305 | |
Originally posted by electronixtar at 2006-10-20 06:56 AM: 楼上的知道我写这个做什么? idlepc.txt的内容都是形如:c7200-ik9o3s-mz.123-17a.bin ======>>> 0x60729c0c 的 我的需求是:运行程序, 1.选择需要模拟的对象(通过,1.2.3.4.5.q选择) 1.1.检测当前目录下有没有IOS(格式为:xxxx.bin有则显示并赋值给iosname,没有显示空) 1.2.检测idlepc.txt有没有匹配的内容(如果有则显示该值并赋值给idlepc.没有显示空) 1.3.检测idelpc.txt的内容是否标准,并删除不标准的部分. 2.要求输入ios,并显示,改写iosname的值.需要检测ios是否符合xxx.bin,不符合重新输入,同时如果为空,要求重新输入 3,要求输入idlepc值,并显示.同时改写idlepc值.需要检测是否以0x开头,而且一共只有10位 4.将输入的iosname和idlepc值以iosname======>>>>idlepc的形式写入idlepc.txt 5.选择r1,r2,r3,r4.....符合选项继续,不符合,提示重新输入,还是返回开始菜单. 6,如果5成立.调用外部bat 7.由于外部bat,变化较大.暂时还没想到用什么方法尽可能使用变量,以增加灵活性.所以就没什么问题了 [ Last edited by yardian on 2006-10-20 at 09:34 ] |
|
| 第7楼 yardian | 发表于 2006-10-20 22:05 |
| 中级用户 发帖 85 积分 305 | |
|
晕,没人帮忙了?自己小顶一下
|
|
| 第8楼 zerocq | 发表于 2006-10-21 01:52 |
| 中级用户 发帖 196 积分 458 | |
|
测了一下下代码,好像代码是没写错
但楼主要注意一下代码分段可能效果好点 你说的那一段我运行也会出现你说的那种错误 ================================================================================ echo 如果IOS检测正确请直接回车确认,否则 :reinput set /p ciscoios=请直接将%name% IOS拖到本窗口: echo ============================================================================== if {%ciscoios%}=={} ( if {%ios%}=={} goto reinput ) if not exist %ciscoios% goto reinput rem 需要加入对%ciscoios%的验证:以bin结尾.但不知道如何写 我把:reinput上边加几个空行 rem这句去掉就没有问题了咯 不知道是什么原因:P 分段容易阅读,P处理可能效果也好点^_^ |
|
| 第9楼 yardian | 发表于 2006-10-21 03:09 |
| 中级用户 发帖 85 积分 305 | |
|
嗯.是的.谢谢!去掉后是没问题了.
namejm版主呢?不是说可以精简吗?能不能帮忙精简一下?写这些代码已经费了很大劲.如果精简可是一点都不会的.麻烦你帮帮忙吧 |
|
| 第10楼 zerocq | 发表于 2006-10-21 04:33 |
| 中级用户 发帖 196 积分 458 | |
|
直接看代码精简应该不容易哇
把用到的文本文件内容,各bin文件名列一些出来才方便精简咯 这里有一个地方可以 if {%cisco%}=={} goto begin if /i %cisco%==1 goto getfilename if /i %cisco%==2 goto getfilename if /i %cisco%==3 goto getfilename if /i %cisco%==4 goto getfilename if /i %cisco%==5 goto getfilename if /i %cisco%==q goto quit 直接改成 if {%cisco%}=={} goto begin if /i %cisco%==1 set name =3620 if /i %cisco%==2 set name =3640 if /i %cisco%==3 set name =3660 if /i %cisco%==4 set name =7200 if /i %cisco%==5 set name =3840 if /i %cisco%==q goto quit 取消getfilename这一步:D |
|
| 第11楼 yardian | 发表于 2006-10-21 04:57 |
| 中级用户 发帖 85 积分 305 | |
|
谢谢,这一步真的是多余的
[ Last edited by yardian on 2006-10-21 at 05:06 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |