批处理 管理当前活动的Telnet会话的问题
@echooffclsecho.title管理当前活动的Telnet会话:oneclsecho.echo.echo.-------------请选择要执行的操作-----...
@echo off
cls
echo.
title 管理当前活动的Telnet会话
:one
cls
echo.
echo.
echo. -------------请选择要执行的操作-------------------------------
echo. -----1、请输入数字1并按回车键,显示当前所有活动Telnet会话-----
echo. -----2、请输入数字2并按回车键,结束指定的活动Telnet会话-------
echo. -----3、请输入数字3并按回车键,向当前所有会话发送信息---------
echo. -----4、输入其他字符,直接退出批处理--------------------------
echo.
echo.
set /p num=请选择要执行的操作:
if "%num%"=="1" (
goto a
:a
cls
tlntadmn -s
echo 按任意键,返回操作菜单……
pause >nul
goto one
)
if "%num%"=="2" (
goto b
:b
cls
tlntadmn -s
tlntadmn -s|find "没有到" >nul
if not errovrlevel 1 (
echo 当前没有活动的会话,按任意键直接返回操作菜单……
pause >nul
goto one
)
set /p endnumber=请输入要结束的Telnet会话ID:
echo.
tlntadmn -k %endnumber% >nul
echo 成功结束ID为%endnumber%的Telnet会话……
echo 按任意键,返回操作菜单……
pause >nul
goto one
)
if "%num%"=="3" (
goto c
:c
cls
set /p message=请输入要发送的消息:
tlntadmn -m all %message% >nul
echo 成功向所有Telnet会话发送了"%message%"消息……
echo 按任意键,返回操作菜单……
pause >nul
goto one
)
echo 您输入了%num%字符,批处理自动退出……
set num=
set endnumber=
set message=
-------------------------------------------------------------------
以上是代码。
我现在输入2和3的时候,批处理直接瞬间退出批处理。
有懂的能告诉下,具体是什么原因好么?
把解决的办法写一下。
另外想找几个有批处理基础的朋友,一起学习研究批处理和注册表。
QQ群:63305482 展开
cls
echo.
title 管理当前活动的Telnet会话
:one
cls
echo.
echo.
echo. -------------请选择要执行的操作-------------------------------
echo. -----1、请输入数字1并按回车键,显示当前所有活动Telnet会话-----
echo. -----2、请输入数字2并按回车键,结束指定的活动Telnet会话-------
echo. -----3、请输入数字3并按回车键,向当前所有会话发送信息---------
echo. -----4、输入其他字符,直接退出批处理--------------------------
echo.
echo.
set /p num=请选择要执行的操作:
if "%num%"=="1" (
goto a
:a
cls
tlntadmn -s
echo 按任意键,返回操作菜单……
pause >nul
goto one
)
if "%num%"=="2" (
goto b
:b
cls
tlntadmn -s
tlntadmn -s|find "没有到" >nul
if not errovrlevel 1 (
echo 当前没有活动的会话,按任意键直接返回操作菜单……
pause >nul
goto one
)
set /p endnumber=请输入要结束的Telnet会话ID:
echo.
tlntadmn -k %endnumber% >nul
echo 成功结束ID为%endnumber%的Telnet会话……
echo 按任意键,返回操作菜单……
pause >nul
goto one
)
if "%num%"=="3" (
goto c
:c
cls
set /p message=请输入要发送的消息:
tlntadmn -m all %message% >nul
echo 成功向所有Telnet会话发送了"%message%"消息……
echo 按任意键,返回操作菜单……
pause >nul
goto one
)
echo 您输入了%num%字符,批处理自动退出……
set num=
set endnumber=
set message=
-------------------------------------------------------------------
以上是代码。
我现在输入2和3的时候,批处理直接瞬间退出批处理。
有懂的能告诉下,具体是什么原因好么?
把解决的办法写一下。
另外想找几个有批处理基础的朋友,一起学习研究批处理和注册表。
QQ群:63305482 展开
展开全部
1:你代码的命令错误:
第32行的代码:if not errovrlevel 1 ( 中的:
errovrlevel 应为:ERRORLEVEL
2:一般我不支持使用:ERRORLEVEL 格式,而是使用%ERRORLEVEL%的引用格式: 如:if %ERRORLEVEL% neq 1。所以建议这个ERRORLEVEL 你要改判断格式。具体你搜一下:ERRORLEVEL 和%ERRORLEVEL% 的使用区别。
3:另外。你上面的goto 是否真的有必要写成:
if "%num%"=="1" (
goto a
:a
cls
tlntadmn -s
echo 按任意键,返回操作菜单……
pause >nul
goto one
)
的形式,也就是说 goto a 和 :a 都在if "%num%"=="1" (*) 的括号里面,这样 goto a 无疑是重复的代码。况且这样的代码会给脚本带来很多不利。
建议将格式写成:
if "%num%"=="1" goto a
if "%num%"=="2" goto b
if "%num%"=="3" goto c
echo 你输入错误字符,请重新看屏幕提示输入
for /l %%i in (3,-1,0) do ping -n 2 127.0.0.%%i>nul && @echo. %%i s 后返还主菜单……
goto one
下面接 :a :b :c 的代码
后面的
echo 您输入了%num%字符,批处理自动退出…… (没有必要输入错误就要退出,直接重来不好些?)
set num=
set endnumber=
set message=
代码不再需要了。主菜单的现实最后4 要修改一下。
以上仅供你参考
第32行的代码:if not errovrlevel 1 ( 中的:
errovrlevel 应为:ERRORLEVEL
2:一般我不支持使用:ERRORLEVEL 格式,而是使用%ERRORLEVEL%的引用格式: 如:if %ERRORLEVEL% neq 1。所以建议这个ERRORLEVEL 你要改判断格式。具体你搜一下:ERRORLEVEL 和%ERRORLEVEL% 的使用区别。
3:另外。你上面的goto 是否真的有必要写成:
if "%num%"=="1" (
goto a
:a
cls
tlntadmn -s
echo 按任意键,返回操作菜单……
pause >nul
goto one
)
的形式,也就是说 goto a 和 :a 都在if "%num%"=="1" (*) 的括号里面,这样 goto a 无疑是重复的代码。况且这样的代码会给脚本带来很多不利。
建议将格式写成:
if "%num%"=="1" goto a
if "%num%"=="2" goto b
if "%num%"=="3" goto c
echo 你输入错误字符,请重新看屏幕提示输入
for /l %%i in (3,-1,0) do ping -n 2 127.0.0.%%i>nul && @echo. %%i s 后返还主菜单……
goto one
下面接 :a :b :c 的代码
后面的
echo 您输入了%num%字符,批处理自动退出…… (没有必要输入错误就要退出,直接重来不好些?)
set num=
set endnumber=
set message=
代码不再需要了。主菜单的现实最后4 要修改一下。
以上仅供你参考
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询