使用脚本批量ping IP , 通和不通分别放入两个不同的TXT文档里,脚本运行一直不成功,
for /L %%n in (1, 1, 255) do ping -n 1 192.168.1.%%n echo 192.168.1.%%n>>126_ok.txt || echo 192.168.1.%%n>>456_not.txt
pause
运行以后 所有IP无论通与不通都在456_not.txt里显示,126_ok.txt 显示:错误的参数 echo
如何修改才能正常显示(通的IP在126_ok.txt ,不通的在456_not.txt)
10.12.13.14
172.15.48.3
192.168.45.54
...
48.114.78.227
把ip放到list.txt
#!/bin/bash
date
cat list.txt | while read output
do
ping -c 1 "$output" > /dev/null
if [ $? -eq 0 ]; then
echo "node $output is ok"
else
echo "node $output is not"
fi
done
用这个脚本试试
#!/bin/bash
for i in {2..255}
do
ip=192.168.32.$i
ping -c1 -W1 $ip &>/dev/null
if [ $? -eq 0 ];then
echo $ip >>/root/1/up.txt
else
echo $ip >>/root/1/down.txt
fi
done
这是Windows里面bat脚本,你的脚本里面丢了一个&&符号,导致两个命令连在一起,所以126_ok.txt提示的是语法错误。
for /L %%n in (1, 1, 255) do ping -n 1 192.168.1.%%n && echo 192.168.1.%%n>>126_ok.txt || echo 192.168.1.%%n>>456_not.txt
pause
关于windows中的bat脚本可以参考https://www.cnblogs.com/xpwi/p/9626959.html