中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 14:22
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]怎样判断服务器是否在线? 查看 748 回复 9
楼 主 [求助]怎样判断服务器是否在线? 发表于 2008-02-18 02:56 ·  马来西亚
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
我需要写一个批处档,能判断 区域网络LAN 上的一台电脑是否有在线,最好能用IP判断是否存在。

如果没有在线 需要restart 自己。

请应该怎么写?

-------
还有批处档里等待的语法应该怎么写,我一直很想让批处当在执行的时间等2秒才执行下一个指令的

谢谢。

[ Last edited by www0com0my on 2008-2-18 at 06:35 PM ]
hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
2 发表于 2008-02-18 09:39 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
ping IP
telnet IP 端口
ping 计算机名称
3 发表于 2008-02-18 18:25 ·  马来西亚
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
请问批处档应该怎么写?

我不能使用这个语法。
IF NOT EXIST “10.0.0.12” shutdown -r -t 0

“IF NOT EXIST”只能判断文件名,无法判断IP :(

请高手指教。

[ Last edited by www0com0my on 2008-2-18 at 06:35 PM ]
hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
4 发表于 2008-02-18 22:54 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
5 发表于 2008-02-19 17:37 ·  中国 广东 电信
初级用户
积分 84
发帖 32
注册 2007-09-17 12:42
18年会员
UID 97604
性别 男
来自 湖北
状态 离线
ping -n 1 192.168.0.3>nul ||goto 1
start \\192.168.1.3
exit
:1
shutdown -r -t 0



ping一次服务器,通则打开服务器`不通则执行:1下面的批处理`
6 发表于 2008-02-19 19:00 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线
arp -d
ping serverip -n 1
arp -a|find "serverip"&&echo 在线||不在线
7 发表于 2008-02-20 20:45 ·  马来西亚
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
Originally posted by zhitingkey at 2008-2-19 05:37 PM:
ping -n 1 192.168.0.3>nul ||goto 1
start \\192.168.1.3
exit
:1
shutdown -r -t 0



ping一次服务器,通则打开服务器`不通则执行:1下面的批处理`





请问 ping -n 1 192.168.0.3>nul ||goto 1
那个 || 有什么通途?
||可以用在其它指令上吗?

谢谢:D
hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
8 发表于 2008-02-20 20:47 ·  马来西亚
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
Originally posted by everest79 at 2008-2-19 07:00 PM:
arp -d
ping serverip -n 1
arp -a|find "serverip"&&echo 在线||不在线

不知道为什么用不到这个批处档。:(
hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
9 发表于 2008-02-20 20:59 ·  马来西亚
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
请问为什么我这个批处档等待5秒之后会直接退出,而没有执行下面的指令:(


cls
cls
cls
@echo off
title .
:: 开机预留更新通道 ::
ping -n 1 10.0.0.12>nul ||goto restart
ping -n 1 10.0.0.14>nul ||goto restart
REM ====================== REM
setlocal enableextensions
echo %time%
call :ProcDelay 500
echo %time%
goto :EOF

:ProcDelay delayMSec_
setlocal enableextensions
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set start_=%%h%%i%%j%%k
:_procwaitloop
for /f "tokens=1-4 delims=:. " %%h in ("%time%") do set now_=%%h%%i%%j%%k
set /a diff_=%now_%-%start_%
if %diff_% LSS %1 goto _procwaitloop
endlocal & goto :EOF
REM ====================== REM
:EOF
IF NOT EXIST z:\ shutdown -r -t 0
copy z:\system\body.bat .\ /y
echo.
echo.
echo.
call z:\system\onerun.bat
exit

:restart
shutdown -r -t 0



1.上面3个cls 因为之后我会在ANSI档前面加入一些unicode,所以需要保留3个空行。

2.等待5秒加载网络磁盘。

3.copy z:\system\body.bat .\ /y 拷贝网络磁盘上同文件名的批处档“覆盖/更新“自己,因为以后这只批处档可能会更动内容。

4.3个echo. 怕覆盖了自己后miss 掉指令,所以放3个空的指令。

5.call 在网盘上面的批处档。


请问这样的思路有错误的地方吗?

[ Last edited by www0com0my on 2008-2-20 at 09:09 PM ]
hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
10 发表于 2008-02-21 16:55 ·  马来西亚 吉隆坡联邦直辖区 大马电信
初级用户
积分 31
发帖 19
注册 2008-02-05 23:07
18年会员
UID 110255
性别 男
状态 离线
掉到第2页了,推上来。:)
hihi~ 大家好,小弟初到贵处,请各位高手多多指教。。。:)
论坛跳转: