使用for循环检测存活主机

未注释代码:

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
del alivehosts.txt
set input=%1%
	
::echo %input% 
for /L %%A in (1, 1, 254) do (  
	SET "NUM=%%A"
    SET target=%input%!NUM!  
::echo !target!
for /F %%i in ('ping !target! -n 1 ^| find /i "TTL" /c') do ( 
 
if %%i equ 1 ( 
echo !target! ----^> alive
	echo !target! >> alivehosts.txt	) else (
		echo !target! ----^> died )
 ) 
)

注释版本:

@echo off
:: 要想在for循环中将数字转换成字符串,需要SETLOCAL ENABLEDELAYEDEXPANSION
::而且变量要使用!variables!而不是%variables%
SETLOCAL ENABLEDELAYEDEXPANSION
del alivehosts.txt
set input=%1%
	
::echo %input% 
for /L %%A in (1, 1, 254) do (  
	SET "NUM=%%A"
    SET target=%input%!NUM!  
::echo !target!
::由于|是特殊字符,需要转义,使用^进行转意义
::bat脚本的变量赋值不像linux那么简单,需要借助for循环来进行变量的赋值
for /F %%i in ('ping !target! -n 1 ^| find /i "TTL" /c') do ( 
 
if %%i equ 1 ( 
echo !target! ----^> alive
	echo !target! >> alivehosts.txt	) else (
		echo !target! ----^> died )
 )
 )
)

使用示例:

检查192.168.31.0/24的存活主机

alive.bat 192.168.31.

存活的主机会被输出到 alivehost.txt 中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值