中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-07 14:51
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理怎样检测U盘? 查看 3,557 回复 23
楼 主 批处理怎样检测U盘? 发表于 2006-09-26 22:46 ·  中国 重庆 合川区 电信
初级用户
积分 126
发帖 38
注册 2006-09-26 20:39
19年会员
UID 63726
状态 离线
寻求N久,未果,在此抱最后希望,望大家帮助小弟一把,不甚感谢!

这个程序我的思路大概是这样的:
如果 有USB移动设备 (将其格式化,并返回“格式化成功”
) 否则 (
返回重新执行
2 发表于 2006-09-26 22:59 ·  中国 北京 联通
金牌会员
★★★★
积分 2,902
发帖 1,147
注册 2006-09-21 12:00
19年会员
UID 63324
性别 男
状态 离线
太危险了吧?
3 发表于 2006-09-26 23:55 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
请慎用!!!

@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 发表于 2006-09-27 01:13 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  『第 3 楼』的代码有条件限制的:要在XP及其之后的系统下,以管理员权限运行。
  不过在我的机子上测试的时候,移动硬盘和U盘的类型显示的依然是固定驱动器字样,有点奇怪。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
5 发表于 2006-09-27 02:07 ·  中国 重庆 合川区 电信
初级用户
积分 126
发帖 38
注册 2006-09-26 20:39
19年会员
UID 63726
状态 离线
Originally posted by pengfei at 2006-9-26 23:55:
请慎用!!!

@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set genre=%%i
set genr ...



麻烦解释一下此段代码的意思好吗?

另外,关于判断是否格式化成功这段代码,为什么没用呢?

format "USBHDD" /q /s /y
if errorlevel==0 (echo 格式化成功
) else (
echo 格式化失败
)

按预计是没有正常格式化就显示“格式化失败”,但每次却都是显示的"格式化成功"。

[ Last edited by nvflash on 2006-9-27 at 02:14 ]
6 发表于 2006-09-27 08:18 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by namejm at 2006-9-27 01:13:
  『第 3 楼』的代码有条件限制的:要在XP及其之后的系统下,以管理员权限运行。
  不过在我的机子上测试的时候,移动硬盘和U盘的类型显示 ...

我的也是这样
7 发表于 2006-09-27 09:14 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
真郁闷...

在我电脑上测试行啊!
附件
1.jpg
8 发表于 2006-09-27 09:30 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  可能是什么地方设置改动了之后就出现找不到 "移动" 这个关键词了,请各位查找一下原因吧。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
9 发表于 2006-09-27 09:32 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
Originally posted by pengfei at 2006-9-27 09:14:
真郁闷...

在我电脑上测试行啊!

你的排列图标是怎么样的?
10 发表于 2006-09-27 09:37 ·  中国 重庆 合川区 电信
初级用户
积分 126
发帖 38
注册 2006-09-26 20:39
19年会员
UID 63726
状态 离线
Originally posted by pengfei at 2006-9-27 09:14:
真郁闷...

在我电脑上测试行啊!


那么,如果我现在要格式化这个U盘,应该用什么变量来代表盘符呢?
11 发表于 2006-09-27 09:42 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
不知道是不是变量用的不妥, 改了一下:

@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 发表于 2006-09-27 09:45 ·  中国 甘肃 张掖 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
全是显示 驱动器
附件
aa.BMP
13 发表于 2006-09-27 09:48 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
楼上兄弟运行 fsutil fsinfo drives 命令显示没错, 难道'fsutil fsinfo drives^|find /v 后面这个管道命令没有成功执行.
14 发表于 2006-09-27 09:58 ·  中国 重庆 合川区 电信
初级用户
积分 126
发帖 38
注册 2006-09-26 20:39
19年会员
UID 63726
状态 离线
Originally posted by pengfei at 2006-9-27 09:42:
不知道是不是变量用的不妥, 改了一下:

@echo off
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives^|find /v ""' ...

对于仁兄的帮助表示无比崇高的敬意!
15 发表于 2006-09-27 10:33 ·  中国 重庆 合川区 电信
初级用户
积分 126
发帖 38
注册 2006-09-26 20:39
19年会员
UID 63726
状态 离线
但是,在我的电脑上还是检测不到,什么也不显示,就暂停了
论坛跳转: