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

简介:

一同事问起,如何使用命令判断磁盘是否是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,如需转载请自行联系原作者

相关文章
|
8月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
107 2
|
8月前
|
Java 程序员 Shell
Java(一)java跨平台原理及dos常用命令
Java(一)java跨平台原理及dos常用命令
57 1
|
8月前
|
关系型数据库 数据库连接 Windows
windows 常用的dos命令
windows 常用的dos命令
149 0
|
8月前
|
关系型数据库 MySQL 数据库
Python tk dos命令备份mysql数据库
Python tk dos命令备份mysql数据库
67 0
|
8月前
|
算法 Linux Shell
【Shell 命令集合 磁盘管理 】Linux 于挂入MS-DOS文件系统 mmount 命令使用指南
【Shell 命令集合 磁盘管理 】Linux 于挂入MS-DOS文件系统 mmount 命令使用指南
101 0
|
8月前
|
存储 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 创建MS-DOS文件系统 mkfs.msdos命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建MS-DOS文件系统 mkfs.msdos命令使用教程
115 0
|
2月前
|
Windows
DOS 批处理 setlocal命令、endlocal命令详解
DOS 批处理 setlocal命令、endlocal命令详解
56 10
|
2月前
|
Windows
DOS 批处理 setlocal命令、endlocal命令详解
setlocal这是一个命令,它开始局部化环境更改,通常在批处理文件中使用,以确保在脚本中所做的任何环境更改(例如设置或修改环境变量)不会影响到调用此批处理的上下文或其他批处理文件
97 14
|
3月前
|
Java Windows
JAVA 常用的 DOS 命令
【10月更文挑战第15天】DOS 命令是 Java 开发中不可或缺的工具,掌握这些命令可以提高开发效率和操作便利性。
46 3
|
5月前
|
监控 JavaScript 前端开发
JAVA常用的DOS命令
JAVA常用的DOS命令