批处理设置计算机名及IP
管着两间学生机房,每间机器数量64台,每次网刻后设置计算机名和IP总是件麻烦的事情
于是就写了个批处理方便设置了
功能说明:运行后获取输入的两位数字的机器号后,将计算机名改为PCxx, IP改为192.168.0.1xx
限制:只支持最大99台机器 {% codeblock %}@echo off echo. echo. echo. set /p cNum=请输入机号(两位数字):
::添加计算机名前缀PC set name=PC%cNum%
::设置计算机名 reg add “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName” /v ComputerName /t reg_sz /d %name% /f >nul 2>nul reg add “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters” /v “NV Hostname” /t reg_sz /d %name% /f >nul 2>nul reg add “HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters” /v Hostname /t reg_sz /d %name% /f >nul 2>nul ::尝试修复重名问题 reg add “HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam” /v @ /t REG_SZ /d “%name%” /f >nul 2>nul reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName” /v “ComputerName” /t REG_SZ /d “%name%” /f >nul 2>nul reg add “HKLM\SYSTEM\CurrentControlSet\Services\Eventlog” /v “ComputerName” /t REG_SZ /d “%name%” /f >nul 2>nul
::设置ip地址变量 set IPAddress=192.168.0.1%cNum% set IPMask=255.255.255.0 set IPGateway=192.168.0.1 set IPDNS1=8.8.8.8 set IPDNS2=8.8.4.4
::为"本地连接"设置IP netsh interface ip set address name="本地连接” source=static addr=%IPAddress% mask=%IPMask% gateway=%IPGateway% gwmetric=1
::设置DNS netsh interface ip set dns name="本地连接” source=static addr=%IPDNS1% register=PRIMARY netsh interface ip add dns name="本地连接” addr=%IPDNS2%
cls echo. echo. echo. echo. echo =====================设置成功==================== echo. echo 计算机名: %name% echo IP: %IPAddress% echo 子网掩码: %IPMask% echo 网关: %IPGateway% echo DNS1: %IPDNS1% echo DNS2: %IPDNS2% echo. echo ================================================= echo. ::等待15秒退出 ping /n 15 127.1>nul{% endcodeblock %} 本想写个功能强大点的批处理,比如加上根据MAC地址自动设置,但是看了看实现方法,一堆麻烦的for语句,goto语句,顿觉头大,最终还是选择放弃,简单够用就行了
Update:添加几句代码,尝试修复提示重名的问题