创建脚本以使用命名方案重命名计算机

Create a script to rename computer using naming scheme

我有这个用于命名机器的脚本。它用于在我成功重新映像机器后自动重命名。一次做 40 或 50 次以节省时间。

SETLOCAL ENABLEDELAYEDEXPANSION
@ECHO OFF
SET count=1
SET campus=JOB

FOR /F "tokens=* USEBACKQ" %%F IN (`wmic bios get serialnumber`) DO ( 
SET serialnumber!count!=%%F
SET /a count=!count!+1
)

SET pcname=%campus%-%serialnumber2%

ENDLOCAL

WMIC computersystem where caption=%computername% rename %pcname%

pause

我有几个不同的校区,使用 3 或 4 个字符的名称方案并使用设备的序列号。我想知道是否有办法确定 %pcname% 是否小于或等于 15 个字符,如果不是,则将最后一位数字截断为等于 15 个字符?由于 Microsoft 只允许 15 个字符作为计算机名称,因此该脚本应该考虑到这一点。理论上。

刚刚:

set pcname=%pcname:~0,15%

长了会剪掉,长了会保持原样

在您的代码中:

SETLOCAL ENABLEDELAYEDEXPANSION
@ECHO OFF
SET count=1
SET campus=JOB

FOR /F "tokens=* USEBACKQ" %%F IN (`wmic bios get serialnumber`) DO ( 
SET serialnumber!count!=%%F
SET /a count=!count!+1
)

SET pcname=%campus%-%serialnumber2%

::
SET pcname=%pcname:~0,15%
SET pcname=%pcname: =%
::


WMIC computersystem where caption=%computername% rename %pcname%

pause

这应该可以解决问题![​​=12=]

SET pcname=%campus%-%serialnumber2%
set pcname=%pcname:~0,15%
REM ENDLOCAL

WMIC computersystem where caption=%computername% rename %pcname%

endlocal 将结束由前面的 setlocal 建立的本地环境,并丢弃此后对环境所做的任何更改(例如 - 更改变量的内容...)