闲来无事设计了一个批次档,这个批次档的主要目地是修改电脑名称并记录到档案中,
特点:
1.可以记录电脑名称,MAC及一个注记,可以用来注记使用者或部门
2.若重覆修改会提示是否使用旧的资料来修改,也可以重新修订资料
3.重覆修改时超时未输入自动填入旧资料,可指定超时秒数
4.预设电脑名称採固定名称加上三码流水号也可自行指定名称
用途:
1.整理所管理的电脑资料
2.懒得查旧资料
@Echo OffMd "%windir%\MdTest" 2>nul&&Rd "%windir%\MdTest" >nul 2>nul||(Echo.&Echo.&Echo 动作完未成!&Echo 请用右键以系统管理员身分执行这个程式&Echo.&Echo.&Echo.&Echo.&Pause&Exit)SetLocal ENABLEDELAYEDEXPANSIONSet "Line3=Echo.&Echo.&echo."Set Sec=3%Line3%:StartFor /F "Skip=1" %%i In ('WMIC Nic Where NetEnabled^=True Get MACAddress^|Findstr .') Do (Set Mac=%%iFor /F "Delims=, Tokens=1-4" %%j In ('Findstr /E /C:"%%i" "%~F0"') Do (Set OldCustomers=%%lSet Old=%%j,%%k,%%l,%%m Echo !此电脑资料已存在资料库中!Echo 资料库中的名称:%%kEcho 资料库中的 MAC:%%mEcho 如果你想使用旧有名称请输入 Y 手动输入电脑名称Echo 若 !Sec! 秒内未做出选择将会自动套用旧有名称Choice /T !Sec! /D N /C YN /M "请选择:"If !ERRORLEVEL! EQU 1 Call :NewPC ReplaceIF Not Defined Replace (Set NewComputerName=%%kSet Customers=%%l) Else (Set NewComputerName=!Define!Set Customers=!Customers!)Echo ::Member,!NewComputerName!-,!Customers!,!Mac!>>"%~F0"Call :CreateComptuerName ReplaceExit /b)Call :NewPCIf Not Defined Counter Set Counter=1For /f %%i In ('Findstr /B /C:"::Member,!Define!-" "%~F0"') Do Set /A Counter+=1Set Counter=0000!Counter!&Set NewComputerName=!Define!-!Counter:~-4,4!Echo ::Member,!NewComputerName!,!Customers!,!Mac!>>"%~F0"Call :CreateComptuerNameExit /b)Echo 找不到MAC位置,请先安装网路卡后再重新执行!PauseExit /B :CreateComptuerNameEcho -------------------------------------Echo 原电脑名称:!ComputerName!Echo 新电脑名称:!NewComputerName!Echo .....................................Echo 原注记内容:!OldCustomers!Echo 新注记内容:!Customers!Echo -------------------------------------WMIC ComputerSystem Where Name="%ComputerName%" Rename Name="!NewComputerName!"If "%1" EQU "Replace" (%Line3%Echo. !!!提示讯息!!!Echo 1.若曾更换网路卡时请会出现这个提示Echo 2.若你选择变更旧的电脑名称时会出现这个提示Echo 3.若直接套用旧资料时请删除最后一行即可Echo.Echo 若与原有资料不相同时请手删除重覆资料Echo 如未删除可能发生跳号或重覆编号的现象Echo 底下指出要删除的资料Echo.Echo !Old!Echo.Echo 请先将上列要删除的资料 COPY 至剪贴簿Echo 将会开启档案供编修.Notepad "%~F0"Echo.)Echo 修改完成.PauseExit /B:NewPCSet Define=UserPCSet Customers=资讯室If "%1" EQU "Replace" Set Replace=YClsEcho 请输入新的电脑名称,或按 Enter 以预设电脑(%Define%+编号)名称进行变更.Set /P Define=电脑名称:Set "Msg1=Echo 发生命名原则错误:%Define%名称无法使用!&Echo 仅能输入0-9、a-Z及-符号,其它字元无法使用."Set Define=!Define: =!Echo !Define!|Findstr [^^a-Z0-9\-]>Nul&&(%Line3%&%Msg1%&Pause&Goto :NewPC)%Line3%Echo 请输入注记,若无输入将使用预设内容:!Customers!Set /P Customers=注记:Set "Customers=!Customers: =!"%Line3%If Not Defined Customers (%Line3%&Echo 未输入注记内容!&Pause&Goto :NewPC)Exit /b
说明:
这个批次档会将电脑资料记录在同一批次档中,为了避免首次记录错误需在最后一行多按一次Enter产生一行空白.
如要修改预设秒数在第5行:Set Sec=3
如要修改预设电脑名称在第75行:Set Define=UserPC
如要修改注记在第76行:Set Customers=资讯室
使用环境:
windows 7 以上
Windows XP 需要另外下载 choice.exe 外部命令
XP 以下不适用