![]() |
中国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 |