我正在尝试编写一个批处理脚本,以检测Windows中是否已经安装了EFI分区。

最终,我的目标是仅在尚未挂载EFI分区时才使用mountvol /S(挂载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

编辑,因为我正在解析错误的值。

10-08 05:14