快速业务通道

用DOS命令判断磁盘分区是否为NTFS格式

作者 佚名 来源 批处理 浏览 发布时间 2013-07-09
一同事问起,如何使用命令判断磁盘是否是NTFS格式,以便进行进一步执行相关命令操作,如转换磁盘格式或设置文件/文件夹安全权限。

  第一反应,可以使用diskpart。经尝试,可以如下使用:

echolistvolume>t.txt&&diskpart/st.txt|find"C">result.txt&&delt.txt

然后使用for语句对输出结果result.txt进行分段判断,但这样的代码看起来过于复杂,而且diskpart只能运行在管理员模式下。

所以使用diskpart命令不太现实。使用cacls进行文件权限设置的时候发现,在运行在非NTFS格式的磁盘上运行会返回1,所以可以如下判断某一磁盘是否为:

caclsc:\>nul
if%errorlevel%==1echoC盘不是NTFS格式

  但如上方法只适用与XP/2003,WIN2000无DISKPART命令,且在非NTFS上运行CACLS返回0,虽然可以使用ver命令输出来判断系统是否为XP/2003,但在WIN2000下使用cacls命令难以判断是否为NTFS格式。也许会说按cacls命令输出为空来判断,那如果那个盘刚好是NTFS格式,但无任何安全权限,那就不好说了。

  编写了一WMI脚本(FileSystem.vbs):

OnErrorResumeNext

ConstwbemFlagReturnImmediately=&h10
ConstwbemFlagForwardOnly=&h20

ForEachstrComputerInarrComputers

SetobjWMIService=GetObject("winmgmts:\\.\root\CIMV2")
SetcolItems=objWMIService.ExecQuery("SELECT*FROMWin32_LogicalDisk","WQL",_
wbemFlagReturnImmediately+wbemFlagForwardOnly)

ForEachobjItemIncolItems
WScript.EchoobjItem.Caption&""&objItem.FileSystem
Next
Next

cscript//nologonfilesystem.vbs可以列出所有盘符的文件系统格式,除了不可用的(如未放光盘的光驱),固可修改批处理如下:

cscript//nologofilesystem.vbs|find"C:NTFS"
if%errorlevel%=1echoC盘不是NTFS格式

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号