手机
当前位置:查字典教程网 >脚本专栏 >DOS/BAT >用DOS命令判断磁盘分区是否为NTFS格式
用DOS命令判断磁盘分区是否为NTFS格式
摘要:一同事问起,如何使用命令判断磁盘是否是NTFS格式,以便进行进一步执行相关命令操作,如转换磁盘格式或设置文件/文件夹安全权限。第一反应,可以...

一同事问起,如何使用命令判断磁盘是否是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:.rootCIMV2")

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格式

【用DOS命令判断磁盘分区是否为NTFS格式】相关文章:

for命令的一些bug分析

Windows下使用命令实现文件换行符替换

批处理中如何判断参数中含有某些字符串?

批处理命令教学之if语句

备份硬盘主引导分区到一个文件中

使用shutdown命令实现远程关机和重启

DOS命令常识

如何用DOS命令删除顽固文件夹啊

cmd rd命令 删除文件夹

用注册表实现(仅供备用)硬盘各分区的默认共享:关闭

精品推荐
分类导航