谢谢楼主分享 |
谢谢分享 |
感谢分享~~~~~~~~~~~~~~~ |
核心脚本更新: ms_BCD_fix-2.17.cmd.zip (5.21 KB, 下载次数: 0) 没有功能增加,只是发现个变量错误,改正了一下。 在一楼 |
更新 增加 bcd 初步检测功能。 基本 完善了。 |
本帖最后由 dos时代菜鸟 于 2018-3-17 09:16 编辑 freesoft00 发表于 2018-3-17 00:45 自动修复先不考虑,要先做个单独的预脚本,要先做足预脚本测试。如何判断,一个选项的好坏是什么,如何修复,是否要查注测表。 版本探测可以改一下,filever 做备用。 |
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] "BuildLabEx"="7601.24024.amd64fre.win7sp1_ldr.180112-0600" 看来这个键值判断并不准确,测试了网上的一个win10系统,没有这个键值。 那么就判断是否有X:\Windows\SysWOW64目录下面的特点文件定系统体系吧。比如如果有C:\Windows\SysWOW64\cmd.exe,那么C盘的系统就是64位,如果没有就是32位。 |
dos时代菜鸟 发表于 2018-3-17 00:29 好的 |
本帖最后由 dos时代菜鸟 于 2018-3-17 00:32 编辑 freesoft00 发表于 2018-3-17 00:22 bootice 界面 按 ESC 就退出了。 默认的 ,是最后一个 被操作的项目 是 默认。 估计是 taskkill 把 bootice 强行关闭闹的, bcdboot 可以成批刷新启动文件,可以规避很多问题。比如 少字体啊啥的。 你用 2.12 在测试吧,我要休息 |
dos时代菜鸟 发表于 2018-3-17 00:11 创建好以后查看,也可以使用bcdedit查看,bcdedit>test.txt,然后调用记事本打开导出的菜单文件。 也可能是bcdboot的原因吧。当前有bcd肯定是不行的。那么一开始就不应该使用bcdboot创建,除非你把原有的bcd删除了然后使用bcdboot创建。 我再测试测试多系统的情况看是否有问题。 多系统创建引导。按照默认习惯,前面的系统是默认系统,比如C盘是默认系统,D盘需要通过菜单选择进入。批处理顺序执行后设置菜单默认值,应该就把D盘的系统设为默认值了。是否可以做一个判断,第一个系统设置为默认值。(这部分还没有测试。只是对流程猜测有可能出现这个结果) |
本帖最后由 dos时代菜鸟 于 2018-3-17 00:20 编辑 freesoft00 发表于 2018-3-16 23:57 另一个程序正在使用此文件,进程无法访问 ,可能是 bootice程序强行通过 taskkill 关闭了,但 内存中 还有,bcd 被独占打开着呢。 可能 是 bootice 导致的。 bootice 这一步,还是有必要的,可以看一下结果。目前看,还没想到啥好办法。 bcdboot 创建引导,正好把 当前 系统的 bcd 操作了,可能 也是原因。需要在 pe 下进行当前系统bcd的操作。 把脚本中 所有的 taskkill 开头的行都删掉,应该可以解决。 |
ok ================================================================================ 确定按照上述设置创建系统引导么(Y/N),默认Y? 检测参数..... Windows 7 Ultimate X64 正在创建引导...... 另一个程序正在使用此文件,进程无法访问。 已成功创建启动文件。 请按任意键继续. . . 运行过程中会有提示进程无法访问,上个版也有这个问题的。 还有就是会打开bootice的界面,需要手动关闭。 测试都是默认值直接回车。 |
gy0715 发表于 2018-3-16 22:51 2.10 是测试版本 2.02 是基础版 |
freesoft00 发表于 2018-3-16 23:10 再测 |
哦,看到了。 系统体系不需要使用那个filever.exe判断,也从注册表直接判断就行。 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] "BuildLabEx"="7601.24024.amd64fre.win7sp1_ldr.180112-0600" 上面是win7 64位系统的。 win7 和win10系统的这个键值的关键字 7601.17514.x86fre.win7sp1_rtm.101119-1850 7601.24024.amd64fre.win7sp1_ldr.180112-0600 16299.15.x86fre.rs3_release.170928-1534 16299.15.amd64fre.rs3_release.170928-1534 通过x86或者amd64就可以判断体系。只是直接用adm64有些不习惯。在批处理中替换成x64就可以了。 另外,bcdedit添加的菜单中前后有都都一个*号。这个看着好别扭,最好去掉。 |
dos时代菜鸟 发表于 2018-3-16 22:03 一楼没有新脚本。还没有上传呢? |
继续折腾,更新脚本 2.08 已经放入 一楼测试 关于 路径有空格没办法运行,是因为 自带的 bcdboot 的特性所致,脚本中已经加入 判断 路径空格 的代码,防止在 有空格的路径下运行 脚本增加 判断系统是否 有 diskpart bcdedit mode reg 等程序 增加 通过 注册表判断 win名称 的功能 将 最后添加进菜单的项目设置为 默认打开 保留 原有菜单,不对原有菜单进行检查校验。检查 菜单 各个项目的 可用性,还是实践检验吧,需要删除的 手动删除,包中已经另行包含删除 bcd 指定项目的脚本。 |
本帖最后由 dos时代菜鸟 于 2018-3-16 18:09 编辑 freesoft00 发表于 2018-3-16 17:02 1、菜单名 需要 用reg 加载卸载 注册表,读取指定位置 键值, 2、确实用到 bcdboot 将自带的 文件 添加安装 到指定位置,如果脚本放在有空格的位置,bcdboot 会出错的。或许 加个双引号 能解决。 如果选择 其他设置 选择 2 ,设置 不用 脚本自带的文件 ,应该不会用这问题。 3、不对原有 菜单进行修改,因为 主要是 作添加 ,要是分析已有菜单 的正确性,脚本就复杂了。可以考虑 将原有 bcd 备份 删除。 |
本帖最后由 freesoft00 于 2018-3-16 17:15 编辑 filever.exe在我的win7 64位中能显示,但是用这个名字添加到bcd的描述中并不好。系统版本不如从下面的注册表中取 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] "ProductName"="Windows 7 Ultimate" 判断是x86或者x64后,加上上面的版本名称 Windows 7 Ultimate x86 Windows 7 Ultimate x64 非当前系统的可以加载这个分区中系统的注册表software文件,分析并取出名称后然后卸载注册表。 批处理可能对带有空格的路径和文件没有做处理,运行中会出错。 论坛好像无法传图片。出现图片传到百度网盘了。 https://pan.baidu.com/s/11FW_-PVr0wi9_j3r_5t1JQ 看图片信息,批处理命令显示的信息好像有一个bcdboot执行后的帮助信息。不知道是哪里的问题。我搜索了一下bcdboot,没有看到你单独运行它。 运行修复批处理之前使用bcdedit 和bcdedit /enum all分别到处信息,运行完成后再次到处。你可以比对一下。 https://pan.baidu.com/s/1HOIBzXuuRnwHGog31YJvhQ 修复后,原有的启动菜单还在,只是新添加了一个现有系统的启动菜单,并且不是默认启动项。 win7 64位测试,使用新菜单启动没有问题,双主分区、bios环境。 没有看批处理代码,这个创建之前可以先导出bcd,对用户的bcd菜单做一下备份,然后再操作应该更好。 |
rrscsm2000 发表于 2018-3-16 15:54 文件后缀名是.001,.002,.003等,论坛上传不能传这个格式,所以往后面添加了.7z 你把所有.7z去掉后,在001文件上右键就可以解压缩 |
rrscsm2000 发表于 2018-3-16 15:54 资源管理器设置显示扩展名 |
freesoft00 发表于 2018-3-16 15:44 好的 |
谢谢!下来看看 |
dos时代菜鸟 发表于 2018-3-16 14:19 在综合区帮兄弟发了一个测试贴。那里人稍微多点。 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=405028 |
dos时代菜鸟 发表于 2018-3-16 09:35 看着挺好的。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.