[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理如何根据IP修改计算机名?

应一朋友要求,帮忙修改计算机名

具体要求:
根据IP最后的数字+H作为计算机名

如:该计算机IP为220.221.2.101
那么就将该计算机重命名为:H101

在看.......沙发

TOP

  1. @echo off
  2. for /f "tokens=15" %%i in ('ipconfig /all^|find "IP Address"') do set name=%%i
  3. set name=H%name:~-3%
  4. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /f /v ComputerName /t reg_sz /d "%name%"
  5. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /f /t reg_sz /d "%name%"
  6. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /f /v Hostname /t reg_sz /d "%name%"
  7. taskkill /im explorer.exe /f&start explorer.exe
  8. rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1
复制代码


不好意思,因为在CMD下测试,最后忘了把for加多个百分号了,一个百分号的for在批处理中是错误的,加多一个就可以了

[ 本帖最后由 lovelymorning 于 2008-6-20 20:24 编辑 ]

TOP

为什么直接运行,不起作用呢?

为什么我复制了以后直接运行不可以呢?
一句一句的来倒是行。

TOP

  1. @echo off
  2. for /f "tokens=6 delims=.: " %%i in ('ipconfig /all^|findstr /c:"IP Address"') do set name=H%%i
  3. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /f /v ComputerName /t reg_sz /d "%name%"
  4. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /f /t reg_sz /d "%name%"
  5. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /f /v Hostname /t reg_sz /d "%name%"
  6. taskkill /im explorer.exe /f
  7. start "" "c:\windows\explorer.exe"
复制代码
***共同提高***

TOP

  1. @echo off
  2. for /f "tokens=6 delims=.: " %%i in ('ipconfig /all^|findstr /c:"IP Address"') do set newname=H%%i
  3. wmic computersystem where "name='%computername%'" call rename %newname%
  4. rem 重启计算机后生效
复制代码

TOP

试过此法更改机器名,有些软件如会计电算化会造成,运行服务器还是前次机器名导致不能创建帐套,感觉仅仅修改这三个键值不够全面,应该还要修改几个键值才全面。

[ 本帖最后由 friendtasy 于 2009-12-10 21:34 编辑 ]

TOP

问一下,我想最后两组数做计算机名呢


根据IP最后两组数字+H作为计算机名

如:该计算机IP为220.221.11.101
那么就将该计算机重命名为:H11101

TOP

回八楼,那不是一个道理的么?
另外个人感觉ipconfig存在不同版本cmd返回值各异的兼容性问题,不如wmic保险
  1. @echo off
  2. for /f "skip=1 tokens=3,4 delims=.}" %%i in (
  3. 'wmic nicconfig where FullDNSRegistrationEnabled^="true" get ipaddress') do (
  4. wmic computersystem where "name='%computername%'" call rename "H%%i%%j
  5. )
  6. rem 重启计算机后生效
复制代码

TOP

我是想要免重启立即生效的那种

TOP

返回列表