中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 14:11
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 检查本地磁盘并判断类型
可打印版本  2,322 / 6
第1楼 9527 发表于 2006-09-01 14:27
银牌会员 发帖 438 积分 1,185 来自 北京
检查本地磁盘并判断类型
@echo off
setlocal enabledelayedexpansion
fsutil fsinfo drives>tmp.txt
for /f "skip=1 tokens=1,2 delims=驱动器 " %%a in ('find /v "" ^<tmp.txt') do (
if not defined aa (set aa=%%b) else set aa=!aa!;%%a
)
for %%i in (%aa%) do fsutil fsinfo drivetype %%i
del tmp.txt


初来乍到,请各位前辈指点一二..........
测试环境WIN XP SP2
第2楼 namejm 发表于 2006-09-01 15:09
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  今天才发现可以用fsutil来作本机信息查询,命令够强悍。

  这段代码还可以改造一下,不用生成临时文件:


  另外,你的代码存在的问题如下:

  1、delims=驱动器 是不正确的分隔语句
  2、if not defined aa (set aa=%%b) else set aa=!aa!;%%a,格式应该是if not something (set1) else (set2),并且set的内容写得也有问题:比如,我在最开始加一句 set aa=1,问题立马出现;

[ Last edited by namejm on 2006-9-1 at 15:51 ]
第3楼 NaturalJ0 发表于 2006-09-01 17:23
银牌会员 发帖 533 积分 1,181
学到新命令。。。
第4楼 vkill 发表于 2006-09-01 17:25
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
收下,这几天马上用上
第5楼 namejm 发表于 2006-09-01 22:03
荣誉版主 发帖 1,737 积分 5,226 来自 成都
  fsutil fsinfo drives^|find /v "" 这一句用得有点诡异,按照一般的理解,大多数人可能不会想到要用find /v "" 去过滤,直接用fsutil fsinfo drives就完事了。但是,如果代码没有管道符号后面的语句,则只会显示第一个磁盘分区的信息。百思不得其解。
第6楼 9527 发表于 2006-09-03 00:05
银牌会员 发帖 438 积分 1,185 来自 北京
不是诡异,是因为fsutil fsinfo drives 得出来的结果虽然中间有空格,但是他代表是回车符或者换行符的作用,所以你只得到了第一个分区的资料了
第7楼 qq43142691 发表于 2007-05-23 17:53
中级用户 发帖 152 积分 326
@echo off
:: code by 3742668 2006-12-6 CMD@XP
set /p x=输入盘符:
for /f "skip=1" %%i in ('wmic logicaldisk where "deviceid='%x%:'" get Description 2^>nul') do set type=%%i
if not defined type set type=此驱动器不存在!
echo %x%:盘的类型为: %type%
pause>nul
goto :eof
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023