无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 1084|回复: 60
打印 上一主题 下一主题

[分享] 重启更换指定系统进入的快速方法

    [复制链接]
跳转到指定楼层
1#
发表于 2024-9-8 18:46:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 呆萌鼠 于 2024-9-9 14:07 编辑

                               重启更换指定系统进入的快速方法
多系统的想重启进别的系统不用在引导界面选,直接进,运行bat或软件--输入一个数字--回车三步结束。
是一次性的,再启动会重回到默认系统。
代码:
  1. @echo off
  2. chcp 65001 >nul

  3. :: 检查是否以管理员身份运行
  4. net session >nul 2>&1
  5. if %errorLevel% neq 0 (
  6.     echo 请以管理员身份运行此脚本。
  7.     echo 正在尝试以管理员身份重新运行...
  8.     :: 重新以管理员身份运行
  9.     powershell -Command "Start-Process '%~f0' -Verb RunAs"
  10.     exit
  11. )

  12. :: 如果已是管理员权限,则执行以下命令
  13. setlocal enabledelayedexpansion

  14. REM 初始化变量
  15. set index=1

  16. REM 获取系统引导配置列表
  17. for /f "tokens=1,2,* delims= " %%A in ('bcdedit /enum ^| findstr "identifier description"') do (
  18.     if /i "%%A"=="identifier" (
  19.         REM 存储每个操作系统的标识符
  20.         set id!index!=%%B
  21.     ) else if /i "%%A"=="description" (
  22.         REM 存储每个操作系统的描述
  23.         set name!index!=%%C
  24.         echo !index!: %%C
  25.         set /a index+=1
  26.     )
  27. )

  28. REM 提示用户选择系统
  29. set /p choice=请选择要启动的系统对应的数字(例如1, 2, 3...):

  30. REM 验证输入是否为有效数字
  31. if not defined id%choice% (
  32.     echo 输入无效,请重试。
  33.     pause
  34.     exit /b
  35. )

  36. REM 设置一次性启动项
  37. bcdedit /bootsequence !id%choice%!

  38. REM 重启系统
  39. shutdown /r /t 0
复制代码
复制到记事本保存,把后缀改为bat即可。
想改成exe的用论坛里的软件,请自行搜索,我昨天的帖子里也有。
使用方法

运行后出现对话框,选择对应系统前面的数字,输入数字,回车,结束。

我只有win11系统带2硬盘PE不知道为啥显示这么少,水平有限,请大佬们多多指教!

成品及制作过程下载地址123pan.com/s/DdErVv-XaKHA

不经常改系统的建议转9#楼,有一键直达!
补充:用论坛里的bat转exe,快捷键可以放到任务栏和桌面右键菜单,详细情况请参考我的帖子由GPT3.5 制作的批量文件重命名软件添加右键制作过程更新 - 综合讨论区 - 无忧启动论坛 - Powered by Discuz! (wuyou.net)

评分

参与人数 3无忧币 +15 收起 理由
smartcowboy + 5 很给力!
Climbing + 5 很给力!
yyz2191958 + 5 赞一个!

查看全部评分

2#
发表于 2024-9-8 18:54:11 | 只看该作者
没支持VHD?


点评

不知道VHD系统有没有标识符,有的话可以制作单独的bat启动,方法我再准备一下一会写在下面。我的下载的文件里有制作过程,你看看应该可以修改来用的。  发表于 2024-9-8 19:01
回复

使用道具 举报

3#
发表于 2024-9-8 18:54:14 | 只看该作者
支持原创
回复

使用道具 举报

4#
发表于 2024-9-8 18:57:15 | 只看该作者
cls
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo. %【留下 10个 空行】%
echo.                                 重启进 Win7 ?
pause>nul
::【数字——各电脑不同。由 “引导菜单.bat” 获取(或 “创建PE启动菜单.exe”)】
BCDEdit /default {7de55357-21e2-11ee-b8ea-00e04e6072c8} >nul 2>nul
cls
shutdown.exe   -r   -t   0         %【重新启动】%
:A
exit
---------------------------------------------------------------------------------
cls
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo. %【留下 10个 空行】%
echo.                                   重启进 PE ?
pause>nul
::【数字——各电脑不同。由 “引导菜单.bat” 获取(或 “创建PE启动菜单.exe”)】
BCDEdit /default {4270dc10-21f1-11ee-bd8e-788a8610df2d} >nul 2>nul
cls
shutdown.exe   -r   -t   0            %【重新启动】%
:A
exit
回复

使用道具 举报

5#
发表于 2024-9-8 19:01:33 | 只看该作者
点赞原著分享
回复

使用道具 举报

6#
发表于 2024-9-8 19:24:04 | 只看该作者
怎么显示这样呢,PE也没显示出来,不支持中文?

QQ截图20240908192254.png (12.21 KB, 下载次数: 0)

QQ截图20240908192254.png

点评

我上面的@echo off chcp 65001 >nul 是强制使记事本与cmd编码相同的意思,如果是取消了就补回,反之取消第二行代码试试。  发表于 2024-9-8 19:51
回复

使用道具 举报

7#
发表于 2024-9-8 19:24:26 | 只看该作者

谢谢分享
回复

使用道具 举报

8#
发表于 2024-9-8 19:38:04 | 只看该作者
本帖最后由 lyrgcy 于 2024-9-8 19:40 编辑

改保存UTF-8编码可以了,但中文的PE菜单没显示出来,windows 10也显示不全,只有10

QQ图片20240908193605.png (42.62 KB, 下载次数: 0)

QQ图片20240908193605.png

点评

1是标题,2是win10,3是其他。应该可以修改能读取系统全名的,咱们都改改看。  发表于 2024-9-8 19:42
回复

使用道具 举报

9#
 楼主| 发表于 2024-9-8 19:39:20 | 只看该作者
本帖最后由 呆萌鼠 于 2024-9-10 06:00 编辑

标识码识别制作一键重启
管理员运行cmd,
输入bcdedit /enum
出现
一次性重启直达的bat代码
  1. @echo off
  2. chcp 65001 >nul

  3. :: 检查是否以管理员身份运行
  4. net session >nul 2>&1
  5. if %errorLevel% neq 0 (
  6. echo 请以管理员身份运行此脚本。
  7. echo 正在尝试以管理员身份重新运行...
  8. :: 重新以管理员身份运行
  9. powershell -Command "Start-Process '%~f0' -Verb RunAs"
  10. exit
  11. )

  12. :: 如果已是管理员权限,则执行以下命令
  13. REM 设置下次启动时进入目标操作系统(一次性启动)
  14. bcdedit /bootsequence {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}

  15. REM 立即重启系统
  16. shutdown /r /t 0
复制代码

复制代码
在bcdedit /bootsequence {           }括号里输入对应系统的符号即可,
由于本人水平有限,需要的特殊情况的代码可以自行修改。十分感谢各位的回馈,谢谢!

                                    

更新由于上面我没有办法更新,故开了新帖子,解决了缺少Windows字样不显示的问题,请移步【新提醒】重启更换指定系统进入的快速方法(更新) - 综合讨论区 - 无忧启动论坛 - Powered by Discuz! (wuyou.net)

回复

使用道具 举报

10#
发表于 2024-9-8 19:39:32 | 只看该作者
谢谢分享
回复

使用道具 举报

11#
发表于 2024-9-8 19:50:35 | 只看该作者
好帮手,再也不愁了,谢楼主分享,非常不错 !!
回复

使用道具 举报

12#
发表于 2024-9-8 20:09:42 | 只看该作者
唯一就是菜单显示不全,也不能显示中文菜单,其他都正常

点评

好的,谢谢  详情 回复 发表于 2024-9-8 20:31
9#楼有一键直达,试试看。  发表于 2024-9-8 20:25
回复

使用道具 举报

13#
发表于 2024-9-8 20:15:11 来自手机 | 只看该作者
学习了谢谢!
回复

使用道具 举报

14#
发表于 2024-9-8 20:27:42 | 只看该作者
谢谢分享
回复

使用道具 举报

15#
发表于 2024-9-8 20:31:24 | 只看该作者
lyrgcy 发表于 2024-9-8 20:09
唯一就是菜单显示不全,也不能显示中文菜单,其他都正常

好的,谢谢
回复

使用道具 举报

16#
发表于 2024-9-8 20:36:14 | 只看该作者
不行,获取到的完全是错误的,第一个是个boot manager但是我MBR模式启动根本不是这样的,3个10启动项根本没有显示,一个7和PE启动项倒是显示的

点评

应该是没有加入识别同名系统的代码,正在改,如果有时间试试9#楼的看看。  发表于 2024-9-8 20:40
回复

使用道具 举报

17#
发表于 2024-9-8 20:45:06 | 只看该作者
6666
回复

使用道具 举报

18#
发表于 2024-9-8 20:45:22 | 只看该作者
6666
回复

使用道具 举报

19#
发表于 2024-9-8 20:51:13 | 只看该作者
本帖最后由 newswan 于 2024-9-8 20:58 编辑
  1. @echo off

  2. setlocal enabledelayedexpansion


  3. set/a _idx_=0

  4. for /f "tokens=1,* delims= " %%A in ('bcdedit /enum') do (
  5.     set _str_=%%A
  6.     if "!_str_:~0,1!" == "-" (set/a _idx_+=1)
  7.     if /i "%%A" == "identifier" (set _id_!_idx_!_=%%B)
  8.     if /i "%%A" == "标识符" (set _id_!_idx_!_=%%B)
  9.     if /i "%%A" == "description" (echo !_idx_!: %%B)
  10.     set _str_=
  11. )
  12. set _
  13. endlocal
复制代码
解决 description 和 中文的问题,试试

点评

好的,我试试看,十分感谢大佬的指点。  发表于 2024-9-10 06:10
回复

使用道具 举报

20#
发表于 2024-9-8 21:31:14 | 只看该作者
能用,显示不完整。vhd-win7干脆就有给数字序号,后面什么都没有,但使用没问题
回复

使用道具 举报

21#
 楼主| 发表于 2024-9-8 21:54:00 | 只看该作者
试了半天也无果,每天再看看吧。各位坛友,早点休息吧!谢谢热心的坛友!
回复

使用道具 举报

22#
发表于 2024-9-8 21:55:47 | 只看该作者
貌似都对得上,就是头尾识别错误,再接再厉啊

点评

你是改的还是原来的,效果这么好,如果是改的就分享一下呗!先谢谢了!  详情 回复 发表于 2024-9-8 22:58
回复

使用道具 举报

23#
 楼主| 发表于 2024-9-8 22:58:49 | 只看该作者
ppll2030 发表于 2024-9-8 21:55
貌似都对得上,就是头尾识别错误,再接再厉啊

你是改的还是原来的,效果这么好,如果是改的就分享一下呗!先谢谢了!

点评

就是你一楼的代码啊。 跟你的不是一样吗 我已经不折腾启动菜单了。都是vhd右键直接启动  详情 回复 发表于 2024-9-8 23:27
回复

使用道具 举报

24#
发表于 2024-9-8 23:05:59 | 只看该作者
謝謝大大分享~感恩 ^^ 有您真好~!辛苦了!
回复

使用道具 举报

25#
发表于 2024-9-8 23:06:36 | 只看该作者
各电脑不同。由 “引导菜单.bat” 获取
回复

使用道具 举报

26#
发表于 2024-9-8 23:27:29 | 只看该作者
呆萌鼠 发表于 2024-9-8 22:58
你是改的还是原来的,效果这么好,如果是改的就分享一下呗!先谢谢了!

就是你一楼的代码啊。
跟你的不是一样吗
我已经不折腾启动菜单了。都是vhd右键直接启动

点评

哈哈。用得上就好。  发表于 2024-9-8 23:34
哈哈。我的问题解决了,谢谢你和你的图片!关键在图上!  发表于 2024-9-8 23:30
回复

使用道具 举报

27#
 楼主| 发表于 2024-9-9 00:19:12 | 只看该作者
本帖最后由 呆萌鼠 于 2024-9-11 19:56 编辑

终于我弄明白了,应该是命名问题!根据22#楼的图片,与我过去存档的cmd改本地系统名称的代码,想到有可能是命名问题,于是修改了本地win11名称
管理员运行cmd
  1. BCDEdit /set {current} description "Windows 11  professional edition"
复制代码
结果一试成了,想了一下原因,标识码是最最底层的唯一识别系统的东西,别的软件都是根据它识别系统,由于过于底层也就必须全英文名称才可以识别,否则会出现乱码,我由于不会代码,所以过去搜集了不少实用的代码保存,结果今天真用上了。获取系统的标识符(identifier)通常是通过使用 bcdedit 命令来完成的,这是 Windows 系统中管理启动配置的主要工具。标识符是一个唯一的 GUID(全局唯一标识符),用于唯一标识每个操作系统或启动项。
我的过去记录里面的代码,说win10及win11系统名称的修改是上面的代码,可以用混用中英文,但是要想使用顶楼重启的代码,必须将引号里的改成正规点的英文,必须本地系统运行改名才有效!
win7系统是管理员运行cmd
  1. BCDEdit /set {3f8fcfd0-3d31-11ea-973d-8d4cb55a61a6} description "Windows 7 x64"
复制代码
XP系统的是
管理员运行cmd
  1. BCDEdit /set {ntldr} description "Windows XP x32"
复制代码

要想使用顶楼代码,必须引号里的改成正规点的英文,必须本地系统运行改名才有效!
不管什么PE都只显示PE两字,
win7 和XP系统的没验证,你们有时间试试看看吧。
暂时总结一下:上面顶楼代码没有问题,是命名的原因。
以上这些可能有误,还得请各位大佬批评指正!
谢谢各位!辛苦了!
现在发现别的改名软件也行,如Easy BCD就可以。




回复

使用道具 举报

28#
发表于 2024-9-9 00:28:13 | 只看该作者
谢谢分享
回复

使用道具 举报

29#
发表于 2024-9-9 05:09:22 | 只看该作者
谢谢分享
回复

使用道具 举报

30#
发表于 2024-9-9 05:25:58 | 只看该作者
谢谢分享
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-9-20 05:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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