Board logo

标题: [网络连接] 批处理如何根据IP修改计算机名? [打印本页]

作者: youxi01    时间: 2008-6-17 23:22     标题: 批处理如何根据IP修改计算机名?

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

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

如:该计算机IP为220.221.2.101
那么就将该计算机重命名为:H101
作者: xxymg    时间: 2008-6-17 23:27

在看.......沙发
作者: lovelymorning    时间: 2008-6-18 04:08

  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 编辑 ]
作者: lianwangnanhai    时间: 2008-6-18 09:58     标题: 为什么直接运行,不起作用呢?

为什么我复制了以后直接运行不可以呢?
一句一句的来倒是行。
作者: batman    时间: 2008-6-18 12:04

  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"
复制代码

作者: Batcher    时间: 2008-6-18 15:55

  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 重启计算机后生效
复制代码

作者: friendtasy    时间: 2009-12-10 21:32

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

[ 本帖最后由 friendtasy 于 2009-12-10 21:34 编辑 ]
作者: rzacx    时间: 2011-2-7 21:50

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


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

如:该计算机IP为220.221.11.101
那么就将该计算机重命名为:H11101
作者: CrLf    时间: 2011-2-7 23:34

回八楼,那不是一个道理的么?
另外个人感觉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 重启计算机后生效
复制代码

作者: rzacx    时间: 2011-2-8 00:59

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




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2