通过添加当前电脑名称来批量重命名电脑

Posted

技术标签:

【中文标题】通过添加当前电脑名称来批量重命名电脑【英文标题】:Batch rename pc by prepending the current pc name 【发布时间】:2013-10-10 12:02:25 【问题描述】:

背景:

作为分包商,我正在将数千台计算机从 xp 迁移到 7。计算机位于域中。我们拥有从域中添加、修改和删除计算机的管理员权限。当我们第一次接近xp机器时,我们必须在名称前添加“delete”并重命名(例如:旧名称“pc12345”新名称“deletepc12345”)。我正在处理一个有助于此过程的批处理文件,但我遇到了一些麻烦。

脚本:

@echo off

SET /P PCNAME=delete%computername%
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName /t REG_SZ /d %PCNAME% /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\ /v ComputerName /t REG_SZ /d %PCNAME% /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ /v Hostname /t REG_SZ /d %PCNAME% /f
REG ADD HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ /v "NV Hostname" /t REG_SZ /d %PCNAME% /f
@echo off
echo Please Restart your computer Manually. The Program will exit now.
echo.
echo.
pause

问题: 运行批处理文件后。计算机名改为“/f”而不是“deletepc12345”

【问题讨论】:

将您的@echo off 更改为@echo on 并查看它的运行情况。可能PCNAME 被设置为一个空字符串,而你以“/d /f”结尾。我有一种感觉 set /p 不像你认为的那样工作。摆脱/p,它应该可以工作。 你是对的。非常感谢。 【参考方案1】:

set /p PCNAME=... 中删除/p。这样做是提示用户输入并仅在屏幕上打印“delete%computername%”。你想要的只是

set "PCNAME=delete%computername%"

就像现在一样,PCNAME 最终可能是一个空字符串,/d %PCNAME% /f 被评估为“/d /f”。

如果您将 @echo off 更改为 @echo on,您的脚本将在运行时打印每一行,您可以准确地看到正在评估的内容。

【讨论】:

以上是关于通过添加当前电脑名称来批量重命名电脑的主要内容,如果未能解决你的问题,请参考以下文章

js 如何批量重命名文件

教你在Win10电脑中给照片快速批量重命名的方法

如何使用邓西百度网盘批量重命名工具对百度网盘中的文件进行批量改名删除等

文件夹批量改名?

批量修改文件夹下的所有文件名称

如何批量重命名文件夹下的Excel文件