![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-25 23:51 |
共 47,812 主题排行 / 349,910 发帖 / 今日 0 篇 / 48,264 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助!如何判断文件系统(半解决)? |
| 可打印版本 1,798 / 9 |
| 第1楼 austion | 发表于 2006-07-12 19:44 |
| 初级用户 发帖 82 积分 178 | |
|
求助!如何判断文件系统(半解决)? 在DOS 下如何判断C盘的文件系统是不是FAT32,如果不是加载NTFSDOS?
在这很感谢bagpipe不断的帮忙回答,使我有了点解决这问题的思路了。 我已经解决了这问题了。 我是利用了GHOST这个文件,算是使用外来软件吧, 我的批处理是这样的: ghost -dd for /f "skip=2 tokens=2" %%a in ('find "Type " GHSTSTAT.TXT') do @echo %%a 在这里的Type后面是紧跟一个空格,应为有一个不需要的信息里也有Type所以就这样解决了,但是还有问题,我使用下后显示的是 NTFS NTFS NTFS NTFS NTFS FAT FAT Floppy CD Disk CD 在这我想问问怎样使用批处理去掉: Floppy CD Disk CD 这些无用的信息呢? 还有这不是说妖在同一主机上使用,而且分区会时常变,还有不一点会是有光驱、软驱、虚拟硬盘等的。 如果单单是检测C盘可以这样做 ghost -dd for /f "skip=2 tokens=2,3,4" %%a in ('find "Type " GHSTSTAT.TXT') do set austion=%%a&goto 002 :002 echo 你的第一分区的文件系统是:%austion% 但是如果不是判断一个分区的话,那要怎样做? [ Last edited by austion on 2006-7-13 at 21:10 ] |
|
| 第2楼 bagpipe | 发表于 2006-07-13 10:04 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
@echo off
setlocal for /f "tokens=2" %%a in ('chkdsk /l') do ( if not defined bagpipe set bagpipe=%%a ) echo 分区类型是:%bagpipe% WIN 2000测试通过............. |
|
| 第3楼 bagpipe | 发表于 2006-07-13 10:07 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
哦,SORRY,没看清题目.........
|
|
| 第4楼 austion | 发表于 2006-07-13 12:26 |
| 初级用户 发帖 82 积分 178 | |
|
谢谢了,我在XP里也通过。
我对于FOR不太懂,如果我要是检查的不是C盘那该怎样写? |
|
| 第5楼 bagpipe | 发表于 2006-07-13 12:36 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
@echo off
setlocal for /f "tokens=2" %%a in ('chkdsk %1 /l') do ( if not defined bagpipe set bagpipe=%%a ) echo 分区类型是:%bagpipe% 把每个盘作为第一个参数传递给批处理就可以了,例如你保存的批处理文件名是test.bat 那么运行的时候是这样的 test c: 就显示分区C的分区类型 test d: 就显示分区D的分区类型 ........................................... .......................................... 以此类推.............................. |
|
| 第6楼 austion | 发表于 2006-07-13 13:10 |
| 初级用户 发帖 82 积分 178 | |
|
谢谢你的帮忙,不过就是使用你的代码,
例如C盘是NTFS的 %bagpipe%变量最后是NTFS。 怎样才能使%bagpipe%变量最后是NTFS呢? |
|
| 第7楼 bagpipe | 发表于 2006-07-13 13:19 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
@echo off
setlocal for /f "tokens=2 delims=。 " %%a in ('chkdsk %1 /l') do ( if not defined bagpipe set bagpipe=%%a ) echo 分区类型是:%bagpipe% 我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕....我晕.... |
|
| 第8楼 austion | 发表于 2006-07-13 16:13 |
| 初级用户 发帖 82 积分 178 | |
|
谢谢!虽然在DOS 下XP自带的CHKDSK.EXE是不能运行,不过这也接近了解决的方法了。
[ Last edited by austion on 2006-7-13 at 17:31 ] |
|
| 第9楼 flysp | 发表于 2006-07-13 19:59 |
| 中级用户 发帖 41 积分 207 | |
|
setlocal 在这里起什么做用
|
|
| 第10楼 GOTOmsdos | 发表于 2006-07-13 20:25 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
想要在DOS下:
00000055 33 32 先获取 DBR,再看偏移55处两字节是不是 0x33 0x32 可参考我的程序:中的dofat.c ********************** 地址: http://www.cn-dos.net/forum/viewthread.php?tid=21493&fpage=1 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |