我前天写的,不知道对你有没有用.
@ECHO OFF
CLS
ECHO "TGHKSJ.CMD" 版本20061130(以日期为版本号) 作者:tghksj 地址:
http://w.vicp.net
setlocal
:VERSION
ver | find /i "Windows XP" > nul
IF NOT errorlevel 1 GOTO :START
ECHO.
ECHO.
ECHO 此程序只在Windows XP操作系统下测试通过.
ECHO 其他版本不能保证正常运行.
GOTO :QUIT
:START
IF NOT "%~1"=="%*" GOTO :SYNTAX
IF /I "%~1"=="/l" GOTO :LIST
IF /I "%~1"=="/s" GOTO :SET
GOTO :HELP
:SYNTAX
echo.
echo.
echo !!参数错误!!
echo ________________
echo 不带参数直接运行本程序将显示帮助信息,并按提示操作.
echo.
GOTO :HELP
::::::::::获取MAC IP NAME并保存::::::::::::::::::::::::::::::::::::::::::::::::::↓
:LIST
Find "%COMPUTERNAME%" "%~dp0"CONFIG.txt > NUL
IF %errorlevel% == 0 GOTO :HAVELIST
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Physical Address"`) do set MAC=%%I
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "IP Address"`) do set IP=%%I
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Subnet Mask"`) do set MASK=%%I
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Default Gateway"`) do set GATEWAY=%%I
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "DNS Servers"`) do set DNS1=%%I
FOR /F "skip=19 tokens=1 usebackq" %%I in (`ipconfig /all`) do set DNS2=%%I
ECHO %MAC% %COMPUTERNAME% %IP% %MASK% %GATEWAY% %DNS1% %DNS2%>>%~dp0CONFIG.txt
IF /I "%~1"=="/l" EXIT
ECHO 信息收集完毕并保存到 %~dp0CONFIG.txt
GOTO :QUIT
::::::::::获取MAC IP NAME并保存::::::::::::::::::::::::::::::::::::::::::::::::::↑
:::::::::::::::::::::::::::::::::::::::::::::::::::::CONFIG.txt::::::示例::::::::↓
::::%%I %%j %%k %%l %%m %%n %%o
::::MAC COMPUTERNAME IP MASK GATEWAY DNS1 DNS2
::::00-E0-4C-49-83-A9 t21 222.173.24.66 255.255.255.192 222.173.24.65 219.146.0.130 219.150.32.132
:::::::::::::::::::::::::::::::::::::::::::::::::::::CONFIG.txt::::::示例::::::::↑
:::::识别MAC,并据此进行继续操作::::::::::::::::::::::::::::::::::::::::::::::::::↓
:SET
FOR /F "usebackq eol=; tokens=2 delims=:" %%I in (`ipconfig /all^|find /i "Physical Address"`) do set MAC=%%I
find /i "%MAC%" "%~dp0CONFIG.txt" > NUL
IF %errorlevel% == 1 GOTO :NO_LIST
FOR /F "tokens=2,3,4,5,6,7" %%j in ('find /i "%MAC%" "%~dp0CONFIG.txt"') do (
SET TCOMPUTERNAME=%%j
SET IP=%%k
SET MASK=%%l
SET GATEWAY=%%m
SET DNS1=%%n
SET DNS2=%%o
)
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "Hostname" /t REG_SZ /d %TCOMPUTERNAME% /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d %TCOMPUTERNAME% /f
netsh interface ip set address name="本地连接" source=static addr=%IP% mask=%MASK% gateway=%GATEWAY% gwmetric=1
netsh interface ip set dns name="本地连接" source=static addr=%DNS1% register=both
netsh interface ip add dns name="本地连接" addr=%DNS2%
GOTO :SHUTDOWN
:::::识别MAC,并据此进行继续操作::::::::::::::::::::::::::::::::::::::::::::::::::↑
:::::::::::::::::::::::重新启动计算机::::::::::::::::::::::::::::::::::::::::::::↓
:SHUTDOWN
IF /I "%~1"=="/s" GOTO :SHUT_Y
GOTO :SHUT_W
:SHUT_Y
shutdown -r -t 0
EXIT
:SHUT_W
echo.
echo 提示:
echo 信息设置完毕.建议按"R"重新启动.(推荐!)
echo -------------------------------
set /P CHS= ?
if /I "%CHS%"=="R" goto :SHUT_Y
if /I "%CHS%"=="Q" goto :QUIT
CLS
goto :SHUT_W
:::::::::::::::::::::::重新启动计算机::::::::::::::::::::::::::::::::::::::::::::↑
:::::::::::::::::::::::帮助信息和手动选择::::::::::::::::::::::::::::::::::::::::↓
:HELP
echo.
echo -= 帮助 =-
echo ------------------------------------------------------------------
echo.
echo 可用参数:
echo.
echo /help 显示此帮助信息.
echo /l 收集客户端信息.信息包括MAC地址、计算机名、IP、子网掩码、网关、DNS。
echo /s 自动设置客户机MAC地址、计算机名、IP、子网掩码、网关、DNS。
echo.
echo 使用方法:
echo 任选一台主机为服务器,服务器任意路径新
echo 建任意名文件夹设置"完全共享",存放此程序.
echo 收集信息时客户机执行:
echo \\服务器名\本程序所在文件夹共享名\TGHKSJ.CMD /l
echo 更改可户端客户机执行:
echo \\服务器名\本程序所在文件夹共享名\TGHKSJ.CMD /s
echo 或者手动执行此程序,按提示操作。
echo.
echo -----------------------------------------------------------------
set /P CHS= ?
if /I "%CHS%"=="L" goto :LIST
if /I "%CHS%"=="S" goto :SET
if /I "%CHS%"=="Q" goto :QUIT
CLS
goto :HELP
:::::::::::::::::::::::帮助信息和手动选择::::::::::::::::::::::::::::::::::::::::↑
:::::::::::::::::::::::重复收集提示::::::::::::::::::::::::::::::::::::::::::::::↓
:HAVELIST
IF /I "%~1"=="/l" EXIT
ECHO.
ECHO.
ECHO.
ECHO 提示:
ECHO 本机信息先前已经收集过.
ECHO.
GOTO :HELP
:::::::::::::::::::::::重复收集提示::::::::::::::::::::::::::::::::::::::::::::::↑
:::::::::::::::::::::::无信息记录提示::::::::::::::::::::::::::::::::::::::::::::↓
:NO_LIST
IF /I "%~1"=="/S" EXIT
ECHO.
ECHO.
ECHO.
ECHO 提示:
ECHO 没有找到本机信息记录
ECHO 请检查%~dp0CONFIG.txt.
ECHO.
GOTO :HELP
:::::::::::::::::::::::无信息记录提示::::::::::::::::::::::::::::::::::::::::::::↑
:::::::::::::::::::::::提示退出::::::::::::::::::::::::::::::::::::::::::::::::::↓
:QUIT
echo ________________________________________________________
echo.
echo
http://w.vicp.net
echo ________________________________________________________
echo
echo ------------------------------------------------------
echo.
if /I "%1"=="" pause>NUL
:::::::::::::::::::::::提示退出::::::::::::::::::::::::::::::::::::::::::::::::::↑