找回密码
 立即注册
搜索
查看: 11|回复: 0

批处理修改计算机名称后自动重启

[复制链接]

16

主题

0

回帖

110

积分

管理员

积分
110
发表于 4 天前 | 显示全部楼层 |阅读模式
  1. @echo off
  2. setlocal EnableDelayedExpansion

  3. :: ==========================================================
  4. :: 1. 生成计算机名称 (纯 CMD 实现,不依赖 PowerShell)
  5. :: 格式: hv + YY + MM + DD + 4位随机大写字母
  6. :: ==========================================================

  7. :: --- 步骤 1.1: 获取标准日期 (使用 WMIC,不受区域格式影响) ---
  8. :: wmic os get localdatetime 输出格式为: YYYYMMDDHHmmss.mmmmmm+UUU
  9. for /f "usebackq tokens=2 delims==" %%i in (`wmic os get localdatetime /value`) do (
  10.     set "dt=%%i"
  11. )

  12. :: 提取年份后两位、月份、日期
  13. :: dt 格式示例: 20260620...
  14. set "year=%dt:~2,2%"
  15. set "month=%dt:~4,2%"
  16. set "day=%dt:~6,2%"

  17. :: --- 步骤 1.2: 生成4位随机大写字母 (纯批处理算法) ---
  18. set "chars=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  19. set "randomPart="
  20. for /L %%i in (1,1,4) do (
  21.     :: 生成 0-25 的随机数
  22.     set /a "randIndex=!random! %% 26"
  23.     :: 截取对应字符
  24.     for %%j in (!randIndex!) do (
  25.         set "randomPart=!randomPart!!chars:~%%j,1!"
  26.     )
  27. )

  28. :: 组合最终名称
  29. set "NewPCName=HV%year%%month%%day%%randomPart%"

  30. echo 正在生成新的计算机名称: %NewPCName%
  31. echo ----------------------------------------

  32. :: ==========================================================
  33. :: 2. 修改计算机名称 (使用 WMIC,不依赖 PowerShell)
  34. :: ==========================================================

  35. echo 正在修改计算机名称...

  36. :: 使用 WMIC 重命名计算机
  37. :: 注意: WMIC 改名后需要重启才能完全生效
  38. wmic computersystem where name="%COMPUTERNAME%" call rename name="%NewPCName%"

  39. if %errorlevel% neq 0 (
  40.     echo 错误: 修改计算机名称失败。
  41.     echo 请确保:
  42.     echo 1. 已以【管理员身份】运行此脚本。
  43.     echo 2. 新名称 "%NewPCName%" 在网络中未冲突。
  44.     pause
  45.     exit /b 1
  46. )

  47. echo 计算机名称已成功设置为: %NewPCName%
  48. echo ----------------------------------------

  49. :: ==========================================================
  50. :: 3. 删除自身并重启
  51. :: ==========================================================

  52. echo 正在删除脚本文件...

  53. :: 尝试删除当前脚本文件
  54. shutdown /r /t 0
  55. del "%~f0" >nul 2>&1

  56. if exist "%~f0" (
  57.     echo 警告: 无法立即删除自身 (可能被占用)。
  58.     echo 重启后请手动删除该文件。
  59. ) else (
  60.     echo 脚本已成功自删除。
  61. )

  62. echo 系统将在 3 秒后重启以应用更改...
  63. timeout /t 3 /nobreak >nul

  64. :: 强制立即重启
  65. shutdown /r /t 0
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|六时吉祥

GMT+8, 2026-6-24 14:52 , Processed in 0.121036 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表