用DOS命令判斷磁碟分割是否為NTFS格式

來源:互聯網
上載者:User

一同事問起,如何使用命令判斷磁碟是否是NTFS格式,以便進行進一步執行相關命令操作,如轉換磁碟格式或設定檔案/檔案夾安全許可權。

  第一反應,可以使用diskpart。經嘗試,可以如下使用:

echo list volume>t.txt && diskpart /s t.txt | find "C " >result.txt && del t.txt

然後使用for語句對輸出結果result.txt進行分段判斷,但這樣的代碼看起來過於複雜,而且diskpart只能運行在管理員模式下。

所以使用diskpart命令不太現實。使用cacls進行檔案使用權限設定的時候發現,在運行在非NTFS格式的磁碟上運行會返回1,所以可以如下判斷某一磁碟是否為:

cacls c:\ >nul
if %errorlevel%==1 echo C盤不是NTFS格式

  但如上方法只適用與XP/2003,WIN2000無DISKPART命令,且在非NTFS上運行CACLS返回0,雖然可以使用ver命令輸出來判斷系統是否為XP/2003,但在WIN2000下使用cacls命令難以判斷是否為NTFS格式。也許會說按cacls命令輸出為空白來判斷,那如果那個盤剛好是NTFS格式,但無任何安全許可權,那就不好說了。

  編寫了一WMI指令碼(FileSystem.vbs):

On Error Resume Next

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20

For Each strComputer In arrComputers

Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_LogicalDisk", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)

For Each objItem In colItems
WScript.Echo objItem.Caption & " " & objItem.FileSystem
Next
Next

cscript //nologon filesystem.vbs 可以列出所有盤符的檔案系統格式,除了停用(如未放光碟片的光碟機),固可修改批處理如下:

cscript //nologo filesystem.vbs | find "C: NTFS"
if %errorlevel%=1echo C盤不是NTFS格式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.