无忧启动论坛

标题: 判断添加PE命令 [打印本页]

作者: wenbieba    时间: 2023-10-6 10:26
标题: 判断添加PE命令
现有1批处理:给ESP分区添加PE
        2批处理:给C盘添加PE
如何用批处理判断实现:

如果存在ESP分区将执行ESP分区批处理,如果不存在ESP分区将执行添加C盘PE的批处理

作者: Anson4    时间: 2023-10-6 10:44
还得检测ESP分区的大小能不能放得下PE包
作者: wenbieba    时间: 2023-10-6 10:48
Anson4 发表于 2023-10-6 10:44
还得检测ESP分区的大小能不能放得下PE包

ESP已经提前分好
作者: wenbieba    时间: 2023-10-6 10:49
Anson4 发表于 2023-10-6 10:44
还得检测ESP分区的大小能不能放得下PE包

加上最好,命令怎么写
作者: szwp    时间: 2023-10-6 10:59
wenbieba 发表于 2023-10-6 10:48
ESP已经提前分好

意思是存在的?
作者: szwp    时间: 2023-10-6 11:05
echo list vol|diskpart
观察有没有的结果
作者: wenbieba    时间: 2023-10-6 11:10
szwp 发表于 2023-10-6 10:59
意思是存在的?

是的,添加一个判断
作者: nathan6498    时间: 2023-10-6 13:03
学习学习
作者: wenbieba    时间: 2023-10-6 14:06
nathan6498 发表于 2023-10-6 13:03
学习学习

学习什么,怎么写都没有
作者: szwp    时间: 2023-10-6 14:28
wenbieba 发表于 2023-10-6 11:10
是的,添加一个判断

用6楼的结果判断
作者: wenbieba    时间: 2023-10-6 15:02
szwp 发表于 2023-10-6 14:28
用6楼的结果判断



如果存在ESP分区将执行ESP分区批处理,如果不存在ESP分区将执行添加C盘PE的批处理

作者: szwp    时间: 2023-10-6 15:22
wenbieba 发表于 2023-10-6 15:02
如果存在ESP分区将执行ESP分区批处理,如果不存在ESP分区将执行添加C盘PE的批处理

ESP已经提前分好就一直存在了
作者: nttwqz    时间: 2023-10-6 15:34
管理员权限运行,否则无法卸载盘符

  1. @echo off
  2. pushd %~dp0

  3. for /f "skip=21 tokens=1,3 delims=:\ " %%a in ('mountvol') do if "%%a"=="EFI" set "espltr=%%b"

  4. if not defined espltr for %%a in (Z Y X W V U T S R Q P O N M L K J I H G F E D) do if not exist %%a:\ set "espltr=%%a"&&goto next
  5. :next
  6. if not exist %espltr%:\ mountvol %espltr%: /s >nul

  7. if exist %espltr%:\ (
  8.     echo;ESP 分区 %espltr%,执行ESP相关代码...
  9.     ping -n 3 127.1
  10.     mountvol %espltr%: /d
  11. ) else (
  12.     echo;不存在ESP分区,执行C盘相关代码...
  13. )
  14. pause
复制代码

作者: nttwqz    时间: 2023-10-6 15:35
未测试PE下是否可行。。。
作者: wenbieba    时间: 2023-10-6 16:08
szwp 发表于 2023-10-6 15:22
ESP已经提前分好就一直存在了

是的会一直存在,假设换一个没有ESP分区的是不就…
作者: wenbieba    时间: 2023-10-6 16:10
nttwqz 发表于 2023-10-6 15:34
管理员权限运行,否则无法卸载盘符

谢谢大佬
作者: wenbieba    时间: 2023-10-6 16:18
nttwqz 发表于 2023-10-6 15:34
管理员权限运行,否则无法卸载盘符

麻烦大神,假如两个都存在执行esp的怎么写,如果同时添加esp和C盘下的会造成sdi冲突(sdi显示后执行的),
作者: lei'yuan    时间: 2023-10-6 16:24
感谢分享
作者: nttwqz    时间: 2023-10-6 16:30
wenbieba 发表于 2023-10-6 16:18
麻烦大神,假如两个都存在执行esp的怎么写,如果同时添加esp和C盘下的会造成sdi冲突(sdi显示后执行的) ...

mountvol应该不会挂载非当前系统的ESP分区,因为这测试的就有Linux的ESP分区,并没有被挂载,如果想安装到非当前系统的ESP分区或者多ESP分区,那么就需要diskpart或者分区助手等工具了,也可以用dpinfo改一下。
作者: nttwqz    时间: 2023-10-6 16:40
意外发现,普通权限mountvol挂载的ESP分区盘符,普通权限的资源管理器中可见,但是常见的方法无法卸载这个盘符diskpart、bootice、常用分区软件、磁盘管理都不行,估计只能重启了。
作者: wenbieba    时间: 2023-10-6 16:53
nttwqz 发表于 2023-10-6 15:34
管理员权限运行,否则无法卸载盘符

加入现有的命令闪退了
作者: ppll2030    时间: 2023-10-6 17:04
  1. @echo off
  2. bcdedit /enum {current} | find "winload.efi"
  3. if "%errorlevel%" == "1" goto BIOS.BAT
  4. if "%errorlevel%" == "0" goto UEFI.BAT

复制代码



作者: wenbieba    时间: 2023-10-6 17:08
ppll2030 发表于 2023-10-6 17:04

现有命令加到什么位置
作者: ppll2030    时间: 2023-10-6 17:13
wenbieba 发表于 2023-10-6 17:08
现有命令加到什么位置

你想它什么时候执行判断,就添加在哪里啊。

bios.bat 和 uefi.bat 分别对应你的C盘PE的批处理和esp的批处理啊。
作者: ha88428    时间: 2023-10-6 17:21
西
作者: nttwqz    时间: 2023-10-6 18:00
wenbieba 发表于 2023-10-6 16:53
加入现有的命令闪退了

在cmd中打开批处理,看看报错内容,改之
作者: wenbieba    时间: 2023-10-6 18:30
nttwqz 发表于 2023-10-6 18:00
在cmd中打开批处理,看看报错内容,改之

一闪而过,off删除都不行
作者: nttwqz    时间: 2023-10-6 18:49
wenbieba 发表于 2023-10-6 18:30
一闪而过,off删除都不行

在cmd中打开批处理,看看报错内容,改之
作者: 无犹启动    时间: 2023-10-28 11:35
学习学习
作者: wjgyz740526    时间: 2023-10-28 12:46
论坛里有现成的,我也写过一个,善用搜索啊
作者: 无犹启动    时间: 2024-2-25 17:19
学习学习
作者: hehuiying    时间: 2024-4-12 15:14
谢谢分享
作者: 无犹启动    时间: 2024-4-25 20:21
谢谢分享
作者: wn168cn@163.com    时间: 2024-10-18 23:17
感谢分享




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3