Board logo

标题: [求助]问一个net use错误回显后无法继续的问题 [打印本页]

作者: linamong     时间: 2008-4-26 22:15    标题: [求助]问一个net use错误回显后无法继续的问题

很抱歉
不知道怎么形容问题和举例子(主要是我举例子的时候,测试是正确的)
:qunfak
@echo off
cls
color 27
echo     群发例子(192.168.5.13-192.168.5.50)
echo     前三位:192.168.5
echo     后一位起始:13
echo     后一位结束:50
set /p ipq=    请输入IP前三位:
set /p iph1=    请输入IP后一位起始:
set /p iph2=    请输入IP后一位结束:
if /I "%ipq%"=="menu" goto Start
if /I "%ipq%"=="主菜单" goto Start
if /I "%iph1%"=="menu" goto Start
if /I "%iph1%"=="主菜单" goto Start
if /I "%iph2%"=="menu" goto Start
if /I "%iph2%"=="主菜单" goto Start
::检测IP正确性
set ip=%ipq%.%iph1%
echo %ip%|findstr "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$">nul||goto fail
set _ip=%ip:.= %
call :check %_ip%
:check
if "%4"=="" goto fail
for %%i in (%1 %2 %3 %4) do (
if %%i gtr 255 goto fail
)
set ip=%ipq%.%iph2%
echo %ip%|findstr "^[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*$">nul||goto fail
set _ip=%ip:.= %
call :check %_ip%
:check
if "%4"=="" goto fail
for %%i in (%1 %2 %3 %4) do (
if %%i gtr 255 goto fail
)
goto fasong
:fail
goto iperror3

:fasong
cls
color 27

if %iph1% EQU %iph2% goto iperror3
if %iph1% LSS %iph2% goto ttt
echo     由于起始位大于结束位,程序自动交换.
set jh=%iph1%
set iph1=%iph2%
set iph2=%jh%
:ttt
echo     需要群发的IP为%ipq%.%iph1%--至--%ipq%.%iph2%
echo     ===============================群发输入框===============================
Set /p liaotian2=    输入消息内容(可以输入选项命令,如menu):
if /I "%liaotian2%"=="menu" goto Start
if /I "%liaotian2%"=="主菜单" goto Start
if /I "%liaotian2%"=="" goto kong2

:jixufs
echo 机房辅助工具,群发日志%time%:>群发日志.log
set ip=%ipq%.%iph1%
echo     正在向%ip%发送消息...
set /a iph1+=1
if /i %iph1% GTR %iph2% (
echo 群发消息完成 >>群发日志.log
echo 该日志尚未保存,需要保存请手动保存. >>群发日志.log
echo %date:~0,10% >>群发日志.log
start 群发日志.log
ping -n 2 127.1>nul
del /q 群发日志.log
goto start
)
echo. >>群发日志.log
echo 正在发送消息给%ip% >>群发日志.log
net send %ip% %liaotian2% >nul 2>nul 1>>群发日志.log
net use Z: /d >nul 2>nul 1
net use Z: "\\%ip%\C$\Documents and Settings\Administrator\桌面">nul 2>nul 1
if not exist Z:\机房辅助工具.exe goto tishi2
net use Z: /d >nul
goto jixufs
:tishi2
copy 机房辅助工具.exe Z:\ >nul 2>nul 1
net send %ip% 系统提示:已在桌面创建=机房辅助工具= >nul 2>nul 1
echo     已在对方桌面创建=机房辅助工具=>>群发日志.log
net use Z: /d >nul
)

goto fasong

:iperror3
color 47
echo.
echo                               ======error!!!======
echo                               =  输入的IP不合法  =
echo                               = ★按任意键返回★ =
echo                               ====================
pause>nul
goto qunfak
错误应该是在net use Z: "\\%ip%\C$\Documents and Settings\Administrator\桌面">nul 2 >nul
为什么这个错误了(就是不存在这个IP或这个IP禁用网络的时候)整个都不能继续?  期待有人帮忙解决
学习中,代码很粗陋,别见笑.

[ Last edited by linamong on 2008-4-26 at 10:27 PM ]
作者: linamong     时间: 2008-4-26 22:35
哦  明白了net use Z: "\\%ip%\C$\Documents and Settings\Administrator\桌面">nul 2 >nul

一旦IP不正确,或不存在,会等很久,误以为是卡住了(有20秒之久呀)

能快么?
作者: abcd     时间: 2008-4-26 23:07
建议在net use之前,先ping下这个IP,正确了再net use
作者: linamong     时间: 2008-4-27 12:52
对哦,ping了就可以了.
由于是初学,ping  后怎么返回对与否,我先自己开动搜索引擎先,不会再回来问问哦.
作者: linamong     时间: 2008-4-27 13:22
ping www.baidu.com &&echo ping得通 ||echo PING不通!
pause

找到了,结贴了