3

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

最终,我的目标是mountvol /S仅在 EFI 分区尚未挂载时才使用(挂载 EFI 系统分区)。

带有该命令的diskpart实用程序本身list volume具有一些潜在有用mountvol的信息,但看起来这两个都需要一些字符串解析。

有没有更好的办法?

4

2 回答 2

5

我不确定有没有更简单的方法......但解析并不是什么大不了的事。这是应该做你需要的事情:

@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

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

于 2012-03-09T21:54:07.363 回答
1

用于在 Windows 中挂载 EFI 分区,例如。赢10。将您的帐户更改为管理员并右键单击窗口标志(左侧)并选择“命令提示符(管理员)”然后写入“diskpart”然后“选择磁盘 1”(或“0”尝试)然后“选择分区” 1' 然后 'assign letter=b' 和 YUP ;)。

于 2015-12-26T07:36:12.910 回答