2012-01-03 17 views
3

我正在嘗試編寫一個批處理腳本來檢測在Windows中是否已經掛載了EFI分區。如何檢測EFI分區是否已通過批處理腳本安裝在Windows中?

最終,我的目標是僅在EFI分區尚未安裝時才使用mountvol /S(裝入EFI系統分區)。

diskpart實用程序與list volume命令有一些可能有用的信息,它自身也是mountvol,但它看起來像這兩個都需要一些字符串解析。

有沒有更好的方法?

回答

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',然後'分配字母= b'和YUP;)。

+0

OP想寫一個批處理腳本。右擊不會有幫助。 – joshp 2015-12-26 07:47:38

+0

您可以轉到運行並鍵入'diskpart'。 – 2015-12-26 08:11:54

相關問題