中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-05 01:15
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何判断个盘是否为NTFS格式? 查看 867 回复 10
楼 主 如何判断个盘是否为NTFS格式? 发表于 2008-04-19 18:01 ·  中国 江苏 无锡 宜兴市 电信
中级用户
★★
积分 487
发帖 212
注册 2007-04-01 08:22
19年会员
UID 83597
性别 男
状态 离线
如何判断各盘是否为NTFS格式?如果不是则批量转换为NTFS格式,如何实现批量转换?


我只能写成单个盘转换,能否批量判断所有盘,然后再实现批量转换??

::将C盘转换成NTFS格式
convert c:/fs:ntfs

::判断磁盘格式
for /f "tokens=1,2" %%i in ('chkntfs c:^|find /i "NTFS" ') do (
set var=%%j
goto type
)
goto over
:over
echo 出错啦!不是NTFS格式耶...马上执行转换....
pause
:type
echo 已经是NTFS格式了,不用转换了!~
pause
2 发表于 2008-04-19 18:19 ·  中国 北京 联通
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
fsutil fsinfo volumeinfo c:\
3 发表于 2008-04-19 21:18 ·  中国 江苏 无锡 宜兴市 电信
中级用户
★★
积分 487
发帖 212
注册 2007-04-01 08:22
19年会员
UID 83597
性别 男
状态 离线
楼上兄弟,我这个判断语句也可以实现判断,兄弟貌似误会了,我不是要查驱动器类型,查询卷信息,我是想,如果不是NTFS格式则转换为NTFS格式,只是想批量判断并转换..
希望会的兄弟,不吝啬赐教...
4 发表于 2008-04-19 21:47 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
wmic logicaldisk get filesystem
5 随便写了段,请自己修改吧: 发表于 2008-04-19 22:31 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
cd\
for /f "delims=:\" %%i in ('fsutil fsinfo drives ^| find "\"') do (
for /f "delims=" %%a in ('fsutil fsinfo volumeinfo %%i: ^| findstr "系统
名"') do call,set str=%%a&if "!str:~8!"=="FAT32" echo %%i盘不是NTFS格式
)
pause>nul


[ Last edited by zw19750516 on 2008-4-19 at 11:14 PM ]
批处理之家新域名:www.bathome.net
6 发表于 2008-04-27 14:15 ·  中国 江苏 无锡 宜兴市 电信
中级用户
★★
积分 487
发帖 212
注册 2007-04-01 08:22
19年会员
UID 83597
性别 男
状态 离线
感谢4楼,5楼兄弟的帮忙,4楼能实现批量判断,5楼写的语法错误....
希望能有兄弟写出完整版让我学习学习...
7 发表于 2008-04-27 14:20 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
假如要判断C盘:
chkntfs C:|find /v ":"
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
8 发表于 2008-04-27 15:42 ·  中国 江苏 无锡 宜兴市 电信
中级用户
★★
积分 487
发帖 212
注册 2007-04-01 08:22
19年会员
UID 83597
性别 男
状态 离线
很感谢楼上兄弟,你没能明白我的意思,只是帮我精简代码一样...


我的目的是:如何判断各盘是否为NTFS格式?如果不是则批量转换为NTFS格式,如何实现批量转换?

我只能写成单个盘转换,能否批量判断所有盘,然后再实现批量转换??


::判断磁盘格式
for /f "tokens=1,2" %%i in ('chkntfs c:^|find /i "NTFS" ') do (
set var=%%j
goto type
)
goto over
:over
echo 出错啦!不是NTFS格式耶...马上执行转换....
::将C盘转换成NTFS格式
convert c:/fs:ntfs
pause
:type
echo 已经是NTFS格式了,不用转换了!~
pause
9 发表于 2008-04-27 16:37 ·  中国 江苏 苏州 电信
初级用户
★★
积分 195
发帖 93
注册 2006-10-28 08:20
19年会员
UID 68626
性别 男
状态 离线
以前写的。。用个磁盘探索递归下就能达到效果了
:ntfs
@echo off
title=ntfs转换工具
set pan=
set/p pan=请输入要测试的盘符 (不带冒号)
if not exist %pan%: echo %pan%盘不存在&goto ntfs
if exist %pan%:\* @for /f "tokens=1,2 delims=。 " %%i in ('chkntfs %pan%:^|@find /v ":"') do (
echo %pan%的文件系统类型是 %%j
if /i %%j==ntfs goto ntfs
if /i %%j==fat* goto ntfs1)
:ntfs1
set t=
set/p t=是否转换为ntfs? Y(是) ,N(否)...
@echo off
if /i "%t%"=="n" goto ntfs
if /i "%t%"=="y" convert %pan%:/fs:ntfs&goto ntfs
10 发表于 2008-04-27 16:41 ·  中国 江苏 无锡 宜兴市 电信
中级用户
★★
积分 487
发帖 212
注册 2007-04-01 08:22
19年会员
UID 83597
性别 男
状态 离线
感谢楼上兄弟热情分享,谢谢了!~
11 发表于 2008-04-27 17:41 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
改一下 5 楼的:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('fsutil fsinfo drives^|find "\"') do (
set str=%%i
call chkntfs %%str:~-3,1%%:|findstr "FAT32">nul&&call echo %%str:~-3,1%%盘不是NTFS格式
)
pause
论坛跳转: