博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用DOS命令判断磁盘分区是否为NTFS格式
阅读量:6935 次
发布时间:2019-06-27

本文共 1220 字,大约阅读时间需要 4 分钟。

一同事问起,如何使用命令判断磁盘是否是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格式

本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/394570,如需转载请自行联系原作者

你可能感兴趣的文章
file文件操作
查看>>
实战Jenkins+SVN+tomcat持续集成发布
查看>>
为Nginx制作404 403 500等错误页面
查看>>
ognl 表达式常用表达式语言
查看>>
Nginx/LVS/HAProxy 负载均衡软件的优缺点详解
查看>>
Oracle导表语句
查看>>
ORA-28001: 口令已经失效
查看>>
我的友情链接
查看>>
现代软件工程 结对编程 (I) 三维棋类游戏
查看>>
Provisioning Services 7.6 入门到精通系列之九:创建和配置目标设备
查看>>
ospf专题二:虚链路
查看>>
《卫生信息基本数据集编制规范》等23项行业标准的通告
查看>>
我的友情链接
查看>>
前端优化的小结
查看>>
对实体类的所有String类型的成员变量值trim
查看>>
rsync的部署
查看>>
RHEL-5搭建SSH服务器
查看>>
Android资源命名规范
查看>>
盘点路由协议之RIP协议及IGRP协议
查看>>
多DHCP服务器的作用域 及备用DHCP服务器(一)
查看>>