CODE: [Copy to clipboard]
@echo off
setlocal
color 0A
:begin
set idlepc=
set cisco=
set iosname=
set ciscoios=
cls
echo 1:3620
echo 2:3640
echo 3:3660
echo 4:7200
echo 5:3840
echo q:退出
set /p cisco= 请输入想要模拟的路由器类型(1,2,3,4,5或q):
echo ================================================================================
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
goto begin
:getfilename
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=3640
:: 查找IOS
findstr /ic:"bin" idlepc.txt >temp.txt
findstr /ic:"bin" temp.txt >idlepc.txt
dir "*.bin" | find /I "%name%" > temp.txt
FOR /F "tokens=4" %%a IN (temp.txt) do (set ios=%%a)
set iosname=%CD%\%ios%
del temp.txt
:: 查找Idlepc
for /F "tokens=1,2 delims==,>, " %%i in (idlepc.txt) do (if %%i==%ios% set idlepc=%%j)
goto router
:router
cls
echo ================================================================================
echo 检测出当前目录下的IOS文件为:%ios%
echo 检测出当前IOS的Idlepc值为:%idlepc%
echo ================================================================================
echo 如果IOS检测正确请直接回车确认,否则
:reinput
set /p ciscoios=请直接将%name% IOS拖到本窗口:
echo ==============================================================================
if {%ciscoios%}=={} (
if {%ios%}=={} goto reinput
)
if not exist %ciscoios% goto reinput
rem 需要加入对%ciscoios%的验证:以bin结尾.但不知道如何写
set iosname=%ciscoios%
echo 如果idlepc值检测正确请直接回车确认
echo 如果想计算Idlepc值,请输入空格,否则
:ldlepc
set /p idlepc=请输入idlepc值(形式为0xaaaaaaaa):
rem 加入对idlepc的验证,也不知道如何实现
if "%idlepc%"=="" set idlepc=
echo ================================================================================
echo 您使用的IOS为:%iosname%
echo 您使用的IOS Idlepc值为:%idlepc%
echo ================================================================================
if "%idlepc%" == "" echo 警告:由于Idlepc值为空,将严重影响你的系统速度
if "%idlepc%" == "" goto setup
if "%idlepc%" == " " goto setup
:: 加入新的idlepc值
call:Print %iosname%
:Print
for /F "tokens=1,2 delims==,>, " %%i in (idlepc.txt) do if %%i+%%j==%ios%+%idlepc% goto setup
set filename=%~nx1
echo. >>idlepc.txt
<nul set/p=%filename% ======^>^>^> %idlepc%>> Idlepc.txt
goto setup
:setup
set /p choice=请输入要运行的设备(r1,r2,r3,r4,r5,r6,sw1,sw2,bb):
if /i %choice%==r1 goto aaa
if /i %choice%==r2 goto aaa
if /i %choice%==r3 goto aaa
if /i %choice%==r4 goto aaa
if /i %choice%==r5 goto aaa
if /i %choice%==r6 goto aaa
if /i %choice%==sw1 goto aaa
if /i %choice%==sw2 goto aaa
if /i %choice%==bb goto aaa
echo 输入不误,请重新输入!
set /p select=请选择按(y)重新输入;按(q)返回主菜单
rem 最好能实现按任意键返回到setup
if /i %select%==y goto setup
if /i %select%==q goto begin
:aaa
call:new.bat
[