用DOS命令判断磁盘分区是否为NTFS格式
所属分类:
脚本专栏 / DOS/BAT
阅读数:
1310
收藏 0赞 0分享
一同事问起,如何使用命令判断磁盘是否是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格式
批处理命令详解之目录跳转:cd
本文给大家介绍的是我们在处理不同路径下文件的时候需要使用的目录跳转命令CD,非常的详细,希望大家看了本文之后可以熟练的使用这个命令。好了,下面我们就来详细介绍下吧。
收藏 0赞 0分享
批处理命令教学之tree命令
本文给大家介绍的是本系列文章的第二个命令--tree命令,在cmd中,tree命令的功能是以树形格式罗列文件,非常的实用的一个命令,下面我们就来详细看下它的用法
收藏 0赞 0分享
批处理命令教学之if语句
这篇文章主要介绍了Windows批处理命令中IF的使用方法,推荐给大家,有需要的小伙伴可以参考下。
收藏 0赞 0分享
批处理命令教学之管道符号(|)
本文给大家分享的是批处理命令教学系列中的管道符号(|)的使用方法,非常的详细,推荐给小伙伴们,希望大家能够喜欢。
收藏 0赞 0分享
批处理命令教学之more命令
这篇文章主要介绍了批处理命令中的more命令,十分的详细,包含了more的参数的使用,推荐给小伙伴,有需要的朋友可以参考下。
收藏 0赞 0分享
BAT批处理一键生成APK包脚本分享
这篇文章主要介绍了BAT批处理一键生成APK包脚本分享,本文脚本适用于cocos2dx+lua的项目,需要的朋友可以参考下
收藏 0赞 0分享
批处理脚本实现提醒下班要打卡
本文给大家分享的是使用批处理脚本实现提醒下班要打卡的方法,一共2个版本,小伙伴们根据自己的情况来选择吧。
收藏 0赞 0分享
查看更多