|
|
楼主 |
发表于 2015-7-16 21:51:08
|
显示全部楼层
参考思路:- @echo off
- setlocal enabledelayedexpansion
- echo,请输入你要查询的IP:
- set /p strIP=
- call :_CmpName !strIP! result
- echo,当前IP !strIP!,与保存记录查询结果为 : !result!
- pause
- goto :EOF
- :_CmpName
- (
- call :_GetNameByIP %1 strName
- echo,取得计算机名为 : !strName!
-
- call :_GetOldNameByIP %1 strOldName
- echo,保存计算机名为 : !strOldName!
-
- if "!strName!" EQU "!strOldName!" (set %2=一致) else (set %2=不一致)
-
- goto :EOF
- )
- :_GetNameByIP
- (
- REM echo,%%2 is : %2
- for /f "tokens=1,* delims=<" %%i in ('nbtstat -a %1^|findstr "<"') do (
- set "%2=%%i"
- set "%2=!%2: =!"
- goto :EOF
- )
- goto :EOF
- )
- :_GetOldNameByIP
- (
- REM echo,%%2 is : %2
- for /f "tokens=1,*" %%i in ('findstr "%1\>" 初始值.txt') do (
- set "%2=%%i"
- )
- goto :EOF
- )
复制代码 三个函数。
:_CmpName是主入口。
:_GetNameByIP是取得指定IP的计算机名。
:_GetOldNameByIP是取得保存文件里面的计算机名。
findstr /i IP 存储文件名 >nul && ()
把strIP改成你需要对比的IP就行。
下面几个函数基本上照抄。
先对比ip是否在txt文件里面存在。。存在的话,还要对比计算机名
只把GetOldNameByIP里面的对比文件改成真实的保存文件名就行了。 |
|