中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: 批处理怎样检测U盘? 上一主题 | 下一主题
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 16 楼』:  

不好意思, 一个变量出错了, 已经修正, 请重新测试11楼的代码!

[ Last edited by pengfei on 2006-9-27 at 10:40 ]

2006-9-27 10:35
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
nvflash
初级用户





积分 126
发帖 38
注册 2006-9-26
状态 离线
『第 17 楼』:  

老大,我加了format %%a后,却把E盘格式化了!我是这样加的


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
format %%a /q /x /y
    )
)

2006-9-27 22:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 18 楼』:  

问题好像没有这么复杂吧???
@echo off
for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do set a=%%a
fsutil fsinfo drivetype %a%|find "移动" >nul&&goto :format||echo 对不起,没有找到移动驱动器!&&goto:eof
:format
format %a% /fs:fat32 /q
echo 格式化完毕!!!



我今后在论坛的目标就是做个超级坏人!!!
2006-9-27 22:54
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 19 楼』:  

实在对不起! 都怪我, 没有说清楚, 格式化E盘已经是不幸中的万幸了, 楼主的格式化代码加错地方了, 没有来个全盘格式化已经是幸运了.

你的格式化是加在内循环中, %%a这个循环变量会把硬盘上所有的盘符都列出. 所以你在用的时候一定要谨慎!!!

代码修改如下:
@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:" (
            set drive=%%a
            echo 找到可移动存储设备, 盘符为%%a  
            call :go
        )
    )
)
cls
echo 所有盘符已检测完毕!
pause
exit

:go
echo.
set /p choice=请选择(y=格式化该盘 n=跳过):
if /i "%choice%"=="y" goto begin
if /i "%choice%"=="n" goto :eof
goto go
:begin
echo format !drive! /q /x /y
echo 格式化完成!
pause
:eof

格式化代码为了安全起见改成了回显示, 测试过后如没有问题请把前面的确echo去掉
echo format !drive! /q /x /y

[ Last edited by pengfei on 2006-9-28 at 00:30 ]

2006-9-28 00:10
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
pengfei
银牌会员




积分 1218
发帖 485
注册 2006-7-21
来自 湖南.娄底
状态 离线
『第 20 楼』:  

请大家千万小心, 在测试这段代码前先把format换成echo.

对楼主格式化E盘造成的损失深表愧疚, 如果E盘有重要数据, 请给我留言, 我这有个数据恢复的软件, 或许能挽回点损失.

[ Last edited by pengfei on 2006-9-28 at 00:48 ]

2006-9-28 00:12
查看资料  发送邮件  发短消息 网志  OICQ (573381312)  编辑帖子  回复  引用回复
nvflash
初级用户





积分 126
发帖 38
注册 2006-9-26
状态 离线
『第 21 楼』:  

没有什么重要东西了,感谢大哥的帮助啊!

2006-9-28 10:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 22 楼』:  

[部分已结]有否类似 findcd 的 U盘盘符识别程序 findusb ?  

2006-9-29 02:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
uemuem
初级用户




积分 153
发帖 68
注册 2006-10-12
来自 上海
状态 离线
『第 23 楼』:  



  Quote:
Originally posted by namejm at 2006-9-27 01:13:
  『第 3 楼』的代码有条件限制的:要在XP及其之后的系统下,以管理员权限运行。
  不过在我的机子上测试的时候,移动硬盘和U盘的类型显示的依然是固定驱动器字样,有点奇怪。

碰到同样的问题,移动硬盘不知道该怎么判断:显示的都是固定驱动器



个人主页-找餐厅:http://www.canting.cc
2007-12-4 12:40
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 24 楼』:  



  Quote:
Originally posted by nvflash at 2006-9-27 09:58 AM:

对于仁兄的帮助表示无比崇高的敬意!

为什么是 tokens=1,2   ---- tokens=1
为什么要!genre:~2!     ---- 直接舍去
感觉有些多余

2007-12-4 14:19
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: