本帖最后由 ygqiang 于 2012-1-1 00:26 编辑
- @echo off
-
- for /f "tokens=15 delims= " %%i in ('ipconfig ^| find /i "IP Address"') do (
- set fsip=%%i
- )
- echo %fsip%
-
-
- for /f "tokens=1,2,3 delims=." %%i in ("%fsip%") do (
- set a=%%i.%%j.%%k
- )
-
- set Gateway=%a%.1
- echo %a%
-
- del /f /q 在线ip.txt
-
- for /l %%m in (1,1,254) do (
-
- ping.exe %a%.%%m -n 1 -w 300 >nul&&echo %a%.%%m>>在线ip.txt
-
- )
-
- exit
复制代码 上面这个bat代码,试验了2个局域网,都能正常保存在线计算机的ip到txt中。- @echo off
- setlocal enabledelayedexpansion
- set "blank20= "
- cd.>1.txt
- for /f "delims=" %%i in ('net view^|find "\\"') do (
- set "var=%%i"
- set "var=!var:~2!"
- CALL :GetIP !var!
- )
- pause>nul
- exit
-
- :GetIP
- set hostname=%1
- set hnIP=
- for /f "tokens=2 delims=[]" %%j in ('ping -4 -n 1 %hostname%') do (
- set hnIP=%%j
- goto :ExitFor
- )
- :ExitFor
- set hostname20=%hostname%%blank20%
- set hostname20=%hostname20:~0,20%
- echo %hostname20%%hnIP%>>1.txt
-
- exit
复制代码 而上面这个bat代码,在有的局域网结果正常。但有的局域网,只能保存自己的计算机名字与ip到txt中。
并不能保存别的计算机名字与ip。
能否将2个bat代码合并下,实现:
如果不能获取并保存局域网内其他机器的计算机名,就只保存ip到txt文件(计算机名字的位置留空就可以),txt显示格式为:
WJLJFN001 192.168.9.32
192.168.9.8
192.168.9.1
192.168.9.9
user13f 192.168.9.44
(最好计算机名字的最前头与ip的最前头,都间隔20个字符) |