我正在尝试编写一个批处理脚本,以检测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
编辑,因为我正在解析错误的值。