2012-01-03 10 views
3

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

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

list volumeコマンドでdiskpartユーティリティは、いくつかの潜在的に有用な情報を持っているが、これらの両方は、いくつかの文字列の解析が必要になりますように見えます。

良い方法がありますか?

答えて

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 

私は間違った値を解析していたため編集されました。

1

WindowsのマウントEFIパーティションの場合。 Win10。 管理者にウルアカウントを変更し、ウィンドウサイン(左側)を右クリックして「コマンドプロンプト(管理者)」を選択し、「diskpart」と入力して「ディスク1を選択」(または「0」を試してください)パーティション1 '、次に' assign letter = b 'とYUP;)。

+0

OPはバッチスクリプトを作成します。右クリックは役に立ちません。 – joshp

+0

「実行」に移動して「diskpart」と入力することができます。 –

関連する問題