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

(0)

相关推荐

  • 判断分区格式的bat代码

    复制代码 代码如下: @echo off :1 cls set/p pan=请输入要测试的盘符 (不带冒号) for /f "tokens=1,2" %%i in ('chkntfs %pan%:') do ( set var=%%j goto type ) goto :eof :type set var=%var:.=% echo %pan%的文件系统类型是 %var% pause>nul goto 1

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

    一同事问起,如何使用命令判断磁盘是否是NTFS格式,以便进行进一步执行相关命令操作,如转换磁盘格式或设置文件/文件夹安全权限. 第一反应,可以使用diskpart.经尝试,可以如下使用: echo list volume>t.txt && diskpart /s t.txt | find "C " >result.txt && del t.txt 然后使用for语句对输出结果result.txt进行分段判断,但这样的代码看起来过于复杂,而且d

  • C#判断指定分区是否是ntfs格式的方法

    本文实例讲述了C#判断指定分区是否是ntfs格式的方法.分享给大家供大家参考.具体如下: using System; using System.IO; namespace RobvanderWoude { class IsNTFS { public static int Main( string[] args ) { try { if ( args.Length == 0 ) { return WriteError( string.Empty ); } if ( args.Length > 1

  • DOS命令初学者基础知识学习

    DOS 基础命令 cd 改变当前目录 sys 制作DOS系统盘 copy 拷贝文件 del 删除文件 deltree 删除目录树 dir 列文件名 diskcopy 制磁盘 edit 文本编辑 format 格式化磁盘 md 建立子目录 mem 查看内存状况 type 显示文件内容 rd 删除目录 ren 改变文件名 记得多少啊,忘了就去上课看看,下面四个命令是新的,给出命令格式,你自己试试看,学电脑重要的就是摸索. cls 清屏 [适用场合] 屏幕上太乱了,或是屏幕上出现乱码了, 清除屏幕上显

  • dos命令介绍

    DOS下的可执行文件有三种,分别是EXE,COM和BAT(当前页支持cmd扩展名).其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读.因此,BAT文件和以上二进制可执行文件相比,内容要简单的多.这些文件内包含着DOS命令的集合,通常叫作批处理文件. 批处理文件的组成虽然比较简单,但其用处非常大,使用也比较广泛.比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多.AUTOEXEC.BAT就是一个特殊的批处理文件,它在DOS的启

  • 20种常用的DOS命令小结

    先介绍一下通配符的概念. 通配符*和? *表示一个字符串 ?只代表一个字符 注意通配符只能通配文件名或扩展名,不能全都表示.例如我们要查找以字母y开头的所有文件,可以输入以下命令:dir y*.*:如果要查找所有扩展名为exe的文件,可以用dir .exe.?只代表一个字符,例如我要查找第二个字母为s的所有文件,可以输入:DIR ?s*.*. 1. dir dir是英文单词directory(目录)的缩写,主要用来显示一个目录下的文件和子目录. [功能] 显示指定磁盘.目录中的文件和子目录信息,

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

    一.常规解决办法: 1.注消或重启电脑,然后再试着删除. 2.进入"安全模式删除". 3.在纯DOS命令行下使用DEL,DELTREE和RD命令将其删除. 4.如果是文件夹中有比较多的子目录或文件而导致无法删除,可先删除该文件夹中的子目录和文件,再删除文件夹. 5.在任务管理器中结束Explorer.exe进程,然后在命令提示符窗口删除文件. 6.如果你有安装ACDSee,FlashFXP,Nero,Total这几个软件,可以尝试在这几个软件中删除文件夹. 二.高级解决方案: 1.磁盘

  • DOS命令详解

    一.DIR 命令的格式: dir [D:][PATH][NAME][[/A][:attrib]][/o:[sorted][/s][/b][/l][/c[h] (1)dir /a:attrib 缺省包含所有文件(系统文件.隐含文件) attrib[:][h/-h]只显示隐含文件或非隐含文件. [r/-r]只显示只读文件或非只读文件 [s/-s]只显示系统文件或非系统文件 [a/-a]只显示要归档文件或非归档文件 (2)/o[:]sorted:缺省完全按字母顺序,子目录显示在文件之前 /o[n/-n

  • Linux磁盘分区实战案例(必看篇)

    一.查看新添加磁盘 [root@localhost /]# fdisk -l 磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0009f1d1 设备 Boot Start End Blocks Id System /dev/s

  • 常用dos命令总结

    什么是DOS命令 DOS命令,计算机术语,是指DOS操作系统的命令,是一种面向磁盘的操作命令,主要包括目录操作类命令.磁盘操作类命令.文件操作类命令和其它命令. 常用命令 目录命令 md/mkdir 作用:创建一个子目录(make directory). 语法:md[C:][path]〈subPath〉 cd 作用:改变或显示当前目录(change directory). 语法:cd [C:][path] PS:路径可以使用绝对路径和相对路径两种. cd\ 表示退回到根目录. cd.. 表示退回

  • python简单几步获取各种DOS命令显示的内容详解流程

    我们经常在C/C++中用"system("pause");"作暂停语句外,还有很多可以用system()调用,比如以下这些dos命令的功能也很不错: system("title C++颜色设置程序"); //设置控制台窗口的标题,即cmd.exe的标题 system("mode con cols=64 lines=25"); //设置窗口宽度高度 system("date /t"); //显示日期 syst

随机推荐