3

EFI パーティションが既に Windows にマウントされているかどうかを検出するバッチ スクリプトを作成しようとしています。

最終的に、私の目標はmountvol /S、EFI パーティションがまだマウントされていない場合にのみ (EFI システム パーティションのマウント) を使用することです。

コマンドを使用したユーティリティには、それ自体と同様に役立つ可能性のある情報がいくつかありますがdiskpart、これらの両方で文字列の解析が必要になるようです。 list volumemountvol

より良い方法はありますか?

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 に答える