我正在尝试编写一个批处理脚本来检测 EFI 分区是否已安装在 Windows 中。
最终,我的目标是mountvol /S
仅在 EFI 分区尚未挂载时才使用(挂载 EFI 系统分区)。
带有该命令的diskpart
实用程序本身list volume
具有一些潜在有用mountvol
的信息,但看起来这两个都需要一些字符串解析。
有没有更好的办法?
我正在尝试编写一个批处理脚本来检测 EFI 分区是否已安装在 Windows 中。
最终,我的目标是mountvol /S
仅在 EFI 分区尚未挂载时才使用(挂载 EFI 系统分区)。
带有该命令的diskpart
实用程序本身list volume
具有一些潜在有用mountvol
的信息,但看起来这两个都需要一些字符串解析。
有没有更好的办法?
我不确定有没有更简单的方法......但解析并不是什么大不了的事。这是应该做你需要的事情:
@echo off
setlocal enabledelayedexpansion
echo list volume > listvol.tmp
REM Checks for "efisys" in the list volume function. If it finds it, checks status. If not healthy sets var to No
for /F "tokens=6-9 delims= " %%G IN ('diskpart /s listvol.tmp') DO IF /I %%G==efisys set mounted=%%J
if '%mounted%'=='Healthy' set mounted=Yes
if not '%mounted%'=='Yes' set mounted=No
echo Is EFI drive mounted?
echo %mounted%.
pause
del listvol.tmp
endlocal
编辑是因为我正在解析错误的值。
用于在 Windows 中挂载 EFI 分区,例如。赢10。将您的帐户更改为管理员并右键单击窗口标志(左侧)并选择“命令提示符(管理员)”然后写入“diskpart”然后“选择磁盘 1”(或“0”尝试)然后“选择分区” 1' 然后 'assign letter=b' 和 YUP ;)。