中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用命令让手动弹出后的可移动驱动器再次加载
作者:
标题: 如何用命令让手动弹出后的可移动驱动器再次加载 上一主题 | 下一主题
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『楼 主』:  如何用命令让手动弹出后的可移动驱动器再次加载

如何用命令让手动弹出后的可移动驱动器再次加载 即是让可移动驱动器再下出现.. 原文 @echo off for /f %%i in ('devcon findall usb* ^|find /i "usb mass storage"') do devcon remove "@%%i" devcon rescan pause 怎样分成两部单独运行?? 当我手动弹出后, (或命令: for /f %%i in ('devcon findall usb* ^|find /i "usb mass storage"') do devcon remove "@%%i" ) 在需要时,只要"rescan"就可让原先弹出的移动驱动器再加载回来---能显示到盘符了 (不想还要拔USB线再插过) 该如何写?? [ Last edited by uouobb on 2008-1-13 at 08:22 PM ]


2008-1-13 20:21
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 2 楼』:  

引: Quote: Originally posted by ccwan at 2006-12-14 08:36: 是立即识别!!! 昨晚我试了好几次,正确方法: 执行“for /f %%i in ('devcon findall usb* ^|find /i "usb mass storage"') do devcon remove "@%%i"”删除U盘后拔下U盘,再执行“devcon rescan”扫描新硬件,如果一起执行,U盘根本来不及拔下就扫描出来了;当然也可以不用执行“devcon rescan” 问题是弹出后再让它检测回来 不要"立即识别"的


2008-1-13 20:26
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 3 楼』:  

@echo off
color 0e&cls&echo.&echo 正在暂停你的 USB 磁盘设备...
for /f "tokens=1,2 delims=" %%i in ('devcon find usb\*^|find /i "USB\VID"') do devcon.exe disable "%%i\%%j" >nul 2>nul
color 0a&cls&echo.&echo  任意键启用你的 USB 磁盘设备...&pause>nul
for /f "tokens=1,2 delims=" %%i in ('devcon find usb\*^|find /i "USB\VID"') do devcon.exe enable "%%i\%%j" >nul 2>nul
pause




2008-1-13 20:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 4 楼』:  

这里其中用到了"devcon" 希望能有象在"设备管理"中手动"停用"USB,然后手动再"启用"的,做成批处理 也可以是通过注册表==之类的 我找过``没找著这样的文章..:lol:


2008-1-13 20:55
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 5 楼』:  3楼的--谢谢你解答

好象不行?? 没反应?? 也没弹出呀.. [ Last edited by uouobb on 2008-1-13 at 08:59 PM ]


2008-1-13 20:57
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 6 楼』:  

上面一部分是禁用 下面一部分是启用 如果你连续执行当然看不到效果 www.cn-dos.net/forum/viewthrea ... www.cn-dos.net/forum/viewthrea ...




2008-1-13 21:05
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 7 楼』:  6楼...我没看那些"冗长"的处理哦!

你弄那段检测到已有"可移动驱动器" 只需运行就可以再显示的 贴上来好吗??


2008-1-13 21:11
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 8 楼』:  

for /f "tokens=1,2 delims=\" %%i in ('devcon find usb\*^|find /i "USB\VID"') do devcon.exe enable "%%i\%%j" >nul 2>nul 没能出来.. 不用启用到哦


2008-1-13 21:13
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 9 楼』:  

我给代码当然能禁用能启用,你自己想怎么用就怎么改 如果运行前检测是否存在USB磁盘见代码 for /f "tokens=1,2 delims=\" %%i in ('devcon find usb\*^|find /i "USB\VID"') do set USB=%%i\%%j if not defined USB echo USB 磁盘设备未发现




2008-1-13 21:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 10 楼』:  

噢,我的天哪 还是不会用你给的代码哦 不知道怎么的运行了没点动作...我的批处理不好@@ 这个 @echo off for /f %%i in ('devcon findall usb* ^|find /i "usb mass storage"') do devcon remove "@%%i" devcon rescan pause 易懂 但不能"remove"后 在没拔出断开USB线时,过一段时间后再单独用"rescan"加载就显示回"可移动驱动器"来 看来还是找一些简单的类似"设备管理器"里手动"停用""启用"的,是是批处理的


2008-1-13 22:04
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 11 楼』:  fastslz~~

哦NO fastslz 是不停用哪个"人体学输入设备"的 而是"磁盘驱动器" 里的 但我还是不会用decvon /? 的命令(用法)


2008-1-13 22:07
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 12 楼』:  

谢谢了``大概我能解决了 类似的停用方法.. 只是find 不同


2008-1-13 22:12
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 13 楼』:  

devcon.exe disable 不就是"设备管理器"里手动"停用" devcon.exe enable 不就是"设备管理器"里手动"启用" 不是所有是可移动磁盘都是这个名字usb mass storage所以我用find /i "USB\VID" @echo off for /f %%i in ('devcon findall usb* ^|find /i "usb mass storage"') do devcon remove "@%%i" 这个是不完整的for语句 remove移除设备 如果代码不好用devcon find usb\*>id.txt再把id.txt内容贴上来




2008-1-13 22:18
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
uouobb
初级用户





积分 82
发帖 37
注册 2007-12-15
状态 离线
『第 14 楼』:  

最后是--- C:\Documents and Settings\Administrator>devcon enable "@USBSTOR\DISK&VEN_SUNPLUS &PROD_MULTIMEDIA-DISK&REV_1.00\01.00.00&0:" No devices enabled. 没有可用的devices


2008-1-13 23:23
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 15 楼』:  

devcon enable "@USBSTOR\DISK&VEN_SUNPLUS&PROD_MULTIMEDIA-DISK&REV_1.00\01.00.00&0:" 这个肯定不行的 你暂时用这个吧,只是部分mp3和数码相机的可移动磁盘不管用,设备的Hardware ID范围太大了找不出规律不好筛选
@echo off
devcon.exe>nul 2>nul
if %errorlevel%==9009 (CLS&&echo.&&COLOR 0E&&echo 本脚本需要微软 DevCon.exe 命令行实用工具支持&&ping/n 5 127.1>nul&&exit/b)

for /f "tokens=1,2 delims=" %%i in ('devcon find usb\*^|find /i "Mass Storage"') do set "USBHDID=%%i\%%j"
if "%USBHDID%"=="" color 0b&cls&echo.&echo  USB 磁盘设备未发现!&ping/n 5 127.0.1>nul&exit
color 0e&cls&echo.&echo  正在禁用你的 USB 磁盘设备...
devcon.exe disable "%USBHDID%" >nul 2>nul
color 0b&cls&echo.&echo  USB 磁盘设备已禁用!&ping/n 3 127.0.1>nul
color 0a&cls&echo.&echo  任意键启用你的 USB 磁盘设备...&pause>nul
devcon.exe enable "%USBHDID%" >nul 2>nul
color 0e&cls&echo.&echo  全部OK!待退出...&ping/n 4 127.0.1>nul




2008-1-13 23:35
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: