![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-26 13:50 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,275 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理怎样检测U盘? |
| 可打印版本 3,861 / 23 |
| 第1楼 nvflash | 发表于 2006-09-26 22:46 |
| 初级用户 发帖 38 积分 126 | |
|
批处理怎样检测U盘? 寻求N久,未果,在此抱最后希望,望大家帮助小弟一把,不甚感谢!
这个程序我的思路大概是这样的: 如果 有USB移动设备 (将其格式化,并返回“格式化成功” ) 否则 ( 返回重新执行 ) |
|
| 第2楼 redtek | 发表于 2006-09-26 22:59 |
| 金牌会员 发帖 1,147 积分 2,902 | |
|
太危险了吧?
|
|
| 第3楼 pengfei | 发表于 2006-09-26 23:55 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
请慎用!!!
@echo off setlocal enabledelayedexpansion for /f "skip=1 tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do ( set genre=%%i set genre=!genre:~-2! for %%1 in (!genre!) do ( fsutil fsinfo drivetype %%1 | findstr "移动" >nul 2>nul && if /i not "%%1"=="A:" echo 找到可移动存储设备, 可能为U盘=%%1 ) ) pause |
|
| 第4楼 namejm | 发表于 2006-09-27 01:13 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
『第 3 楼』的代码有条件限制的:要在XP及其之后的系统下,以管理员权限运行。
不过在我的机子上测试的时候,移动硬盘和U盘的类型显示的依然是固定驱动器字样,有点奇怪。 |
|
| 第5楼 nvflash | 发表于 2006-09-27 02:07 |
| 初级用户 发帖 38 积分 126 | |
Originally posted by pengfei at 2006-9-26 23:55: 麻烦解释一下此段代码的意思好吗? 另外,关于判断是否格式化成功这段代码,为什么没用呢? format "USBHDD" /q /s /y if errorlevel==0 (echo 格式化成功 ) else ( echo 格式化失败 ) 按预计是没有正常格式化就显示“格式化失败”,但每次却都是显示的"格式化成功"。 [ Last edited by nvflash on 2006-9-27 at 02:14 ] |
|
| 第6楼 vkill | 发表于 2006-09-27 08:18 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by namejm at 2006-9-27 01:13: 我的也是这样 |
|
| 第7楼 pengfei | 发表于 2006-09-27 09:14 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
真郁闷...
在我电脑上测试行啊! 附件 1.jpg (37.51 KiB) |
|
| 第8楼 namejm | 发表于 2006-09-27 09:30 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
可能是什么地方设置改动了之后就出现找不到 "移动" 这个关键词了,请各位查找一下原因吧。
|
|
| 第9楼 vkill | 发表于 2006-09-27 09:32 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
Originally posted by pengfei at 2006-9-27 09:14: 你的排列图标是怎么样的? |
|
| 第10楼 nvflash | 发表于 2006-09-27 09:37 |
| 初级用户 发帖 38 积分 126 | |
Originally posted by pengfei at 2006-9-27 09:14: 那么,如果我现在要格式化这个U盘,应该用什么变量来代表盘符呢? |
|
| 第11楼 pengfei | 发表于 2006-09-27 09:42 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
不知道是不是变量用的不妥, 改了一下:
@echo off setlocal enabledelayedexpansion for /f "skip=1 tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do ( set genre=%%i set genre=!genre:~-2! for %%a in (!genre!) do ( fsutil fsinfo drivetype %%a | findstr "移动" >nul 2>nul && if /i not "%%a"=="A:" echo 找到可移动存储设备, 可能为U盘=%%a ) ) pause 格式化U盘的盘符变量为 %%a [ Last edited by pengfei on 2006-9-27 at 10:39 ] |
|
| 第12楼 vkill | 发表于 2006-09-27 09:45 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
全是显示 驱动器
附件 aa.BMP (52.87 KiB) |
|
| 第13楼 pengfei | 发表于 2006-09-27 09:48 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
楼上兄弟运行 fsutil fsinfo drives 命令显示没错, 难道'fsutil fsinfo drives^|find /v 后面这个管道命令没有成功执行.
|
|
| 第14楼 nvflash | 发表于 2006-09-27 09:58 |
| 初级用户 发帖 38 积分 126 | |
Originally posted by pengfei at 2006-9-27 09:42: 对于仁兄的帮助表示无比崇高的敬意! |
|
| 第15楼 nvflash | 发表于 2006-09-27 10:33 |
| 初级用户 发帖 38 积分 126 | |
|
但是,在我的电脑上还是检测不到,什么也不显示,就暂停了
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |