#在这里快速回非常需要,感谢复# |
这个工个真好,谢谢 |
正好需要下载来看看 |
dos时代菜鸟 发表于 2022-11-20 20:59 谢谢,脚本我下载看了,已经实现了,因为我的pe和外置单独在一个隐藏分区中,所以不想给这个分区分配盘符,用上述路径可以配合pecmd挂载隐藏分区的外置,就不用分配盘符了 |
泮安宁 发表于 2022-11-20 15:32 这个 是可以的,关键是,你用这个 不就是要 进入脚本,获取脚本 得出的结论么? 脚本里面 都有引用的。显示在 窗口 很简单。 |
dos时代菜鸟 发表于 2022-11-20 13:24 最后返回的路径里可不可以多加一项,在第几块硬盘的第几个分区,“\\?\Harddisk0Partition1”这种路径 |
泮安宁 发表于 2022-11-20 11:19 可以,而且可以给分配盘符, 前提是 用 bcd 启动的,在注册表中 有 记录。 |
D_M_GuYing 发表于 2022-11-10 07:21 我是用 part 找出 有盘符的光驱,也没几个,逐个判断下,效率上也不耽误。 |
dos时代菜鸟 发表于 2022-11-9 14:37 哦,那我这个是用对了?? 那就好 |
D_M_GuYing 发表于 2022-11-9 13:24 你这个就是取第一个空间盘符分配的 fdrv -idlec &drvs=*: mstr &drvx=<1>%&drvs% DISK %&drvx%,%&disk%,%&part%,1 如果是下面这个,就是用最后一个空闲盘符 fdrv -idlec &drvs=*: mstr &drvx=<-1>%&drvs% DISK %&drvx%,%&disk%,%&part%,1 紫色部分 DISK %&drvx%,%&disk%,%&part%,1 DISK [变量名],硬盘号,分区号 ┃ ┃ │ │※"硬盘号"不为空值,"分区号"也不为空值时,根据"变量名"的格式按以下三种情况处理: ┃ ┃ │5.1 │ DISK ,硬盘号,分区号 ┃ ┃ │ │ 1、"变量名"为空值时,则卸载该硬盘分区分配的盘符卷,见示例7; ┃ ┃ │5.2 │ DISK 盘符卷,硬盘号,分区号,[功能号] ┃ ┃ │ │ 2、"变量名"为盘符卷时(如 E: 或 E:\),为硬盘分区分配指定的盘符卷,"功能号"省略或为0时,若为┃ ┃ │ │ 隐藏分区则不分配盘符卷,"功能号"为非0时不管是否为隐藏分区均分配盘符卷,见示例8; ┃ ┃ │5.3 │ DISK 变量名,硬盘号,分区号 ┃ ┃ │ │ 3、"变量名"不为空值,且不符合盘符形式时,将该分区的盘符赋值给指定的"变量名",见示例 |
dos时代菜鸟 发表于 2022-11-9 12:39 很能感觉到你的心情,虽然一通儿的折腾,又被我凭空添了些不必要的麻烦,但最后解决或者解惑了,心情大好,跟喝了一壶老酒似的,,, 再最后麻烦一件事儿,我PECMD.INI中的红色部分,主要是我想要分配第一个可用盘符,但你的脚本分配的是最后一个可用盘符,不知道我这么改是否严谨,好象之前你说过,这个命令分配盘符,在有些特殊情况下,有点不靠谱。 我不是学这个专业的,PECMD.EXE全靠自己看着帮助慢慢的学,这阵儿子跟你学到了很多,再次感谢!! _SUB FINDFZ REGI .HKLM\SYSTEM\CurrentControlSet\Control\SystemStartOptions,&sso forx * %&sso% ,&p0, { envi &&item0= mstr &&item0=0,7,%&p0% Find $"%&item0%"="RDPATH=" , { mstr &p0=8,0,%&p0% mstr -delims:\ value1=<1>%&p0% } } Find $"%value1%"<>"", { sed *ni &str2=0,[()0123456789], ,%value1% mstr &type1=<3>%&str2%% ifex '%&type1%'='cdrom', { FORX !\Setup\安装WinPE.CMD,STPATH,1,FDRV STPATH=%STPATH% ENVI wzPath=%STPATH%\WEPE\WEPE.INI }! { part -drv list volume \ArcName\%value1%,&part_info ifex '%&part_info%'<>'', { mstr &disk,&part,<r=<2><3><8>%&part_info% ENVI wzPath=%<r%\WEPE\WEPE.INI Find $"%<r%"="", { fdrv -idlec &drvs=*: mstr &drvx=<1>%&drvs% DISK %&drvx%,%&disk%,%&part%,1 ENVI wzPath=%&drvx%\WEPE\WEPE.INI } }! { fdrv &drvs01=* sed &drvs1=0,[ ],,%&drvs01% show -check -1:-1,1 fdrv &drvs2=* sed &drvs2=0,[%&drvs1%],,%&drvs2% call A_ltr forx * %RD% %FD%,&drvx1, { ifex "%&drvx1%WEPE\WEPE.INI", { envi wzPath=%&drvx1%WEPE\WEPE.INI sed &drvs2=0,[%&drvx1%],,%&drvs2% exit forx } } forx * %&drvs2%,&drvx1,subj -%&drvx1%: } } } } _END |
D_M_GuYing 发表于 2022-11-9 12:35 没关系,从来也没怪你呀。哈哈哈。 |
本帖最后由 D_M_GuYing 于 2022-11-9 12:18 编辑 dos时代菜鸟 发表于 2022-11-9 11:27 加入后,启动到桌面前,如图 启动到桌面后,问题依旧 |
D_M_GuYing 发表于 2022-11-9 11:33 我是说 资源管理器里不看到那个盘符,不代表那个分区没有盘符。 fdrv drvs=* mess [%drvs%] 看有f盘么? 有可能是 另一个权限下给分配了 f 盘符,在 show 指令一折腾,给显示出来了。 这个就不好办了。 |
dos时代菜鸟 发表于 2022-11-9 10:45 不知道我上次的回复有没有表达清楚,再详细说下 我的PECMD.INI,查找外置就写搜索的那一部分,全部删除,U启后,ESP分区,U启分区都没有分配,那就是说,PECMD.INI中,没有ESP分配的代码 加上了,再U启,就分配ESP了,当然,定位WIM所在分区的是U启分区 _SUB wz envi. mess1=%mess1%\n 无法解析注册表中的 boot.wim 路径,或该路径已丢失.尝试逆序轮询搜索. fdrv &drvs01=* sed &drvs1=0,[ ],,%&drvs01% show -check -1:-1,1 fdrv &drvs2=* sed &drvs2=0,[%&drvs1%],,%&drvs2% envi mess1=%mess1%\n 新分配的盘符 [%&drvs2%] //按硬盘分区序列给已有盘符排序 call A_ltr // ................................................. _END _SUB A_ltr ...................... _END |
本帖最后由 dos时代菜鸟 于 2022-11-9 11:29 编辑 D_M_GuYing 发表于 2022-11-9 11:03 难道 show -check -1:-1,1 这个命令有延迟?导致不能获取新加载的分区盘符? 可以添加两句话试试 envi. mess1=%mess1%\n 无法解析注册表中的 boot.wim 路径,或该路径已丢失.尝试逆序轮询搜索. fdrv &drvs01=* sed &drvs1=0,[ ],,%&drvs01% show -check -1:-1,1 wait 1000 fdrv &drvs2=* mess 手动打开我的电脑,看一下 是否有新的分区被加载了。\n[%&drvs1%] \n[%&drvs2%] sed &drvs2=0,[%&drvs1%],,%&drvs2% envi mess1=%mess1%\n 新分配的盘符 [%&drvs2%] //按硬盘分区序列给已有盘符排序 call A_ltr envi mess1=%mess1%\n 分区盘符搜索序列 [%RD%][%FD%] forx * %RD% %FD%,&drvx1, |
dos时代菜鸟 发表于 2022-11-9 10:45 这个问题我想过,也测试了,删除下面代码的时候,U启时,外置加不到,ESP,U启分区都没有分配, 加上下面代码后,就是上一个回复的图了,所以,排除了你说的可能 { //未获取到 路径对应的硬盘/分区/盘符 信息 envi. mess1=%mess1%\n 无法解析注册表中的 boot.wim 路径,或该路径已丢失.尝试逆序轮询搜索. fdrv &drvs01=* sed &drvs1=0,[ ],,%&drvs01% show -check -1:-1,1 fdrv &drvs2=* sed &drvs2=0,[%&drvs1%],,%&drvs2% envi mess1=%mess1%\n 新分配的盘符 [%&drvs2%] //按硬盘分区序列给已有盘符排序 call A_ltr envi mess1=%mess1%\n 分区盘符搜索序列 [%RD%][%FD%] forx * %RD% %FD%,&drvx1, .............................................. |
D_M_GuYing 发表于 2022-11-9 10:28 从图片看,esp 分区 是在 运行脚本前就 被挂载了的。进入脚本后,并没有挂载那个分区,自然也就不卸载了呀。 这种情况,跟脚本没啥关系了。 |
dos时代菜鸟 发表于 2022-11-9 09:46 刚才忘记测试了 subj -F: 可以卸载掉 |
dos时代菜鸟 发表于 2022-11-9 09:46 给分配了F盘,ESP分区只有引导文件,WEPE文件夹已删除 U启后 |
本帖最后由 dos时代菜鸟 于 2022-11-9 09:47 编辑 D_M_GuYing 发表于 2022-11-9 09:12 能看到 esp 分区 挂载到 哪个盘符了么? 是否在 卸载之列? 如果用 pecmd subj -盘符: 的方式 能否卸载掉。怀疑这个分区 有多个不同权限下分配的盘符。 |
dos时代菜鸟 发表于 2022-11-9 08:24 但,定位是准确的,也没有显示MSR分区,,这已经很好了,不影响大局 |
dos时代菜鸟 发表于 2022-11-9 08:24 没卸载掉,我怕是我ESP分区存在 WEPE\WEPE64.wim,已经删除了整个ESP\WEP文件夹 重新U启,ESP分区还是上去了 |
找到了, 在搜索那里最后加个 ENVI @List7.isel=1 就选择第一个卷号了 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.