中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 06:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用批处理做到安全删除硬件? 查看 2,737 回复 9
楼 主 如何用批处理做到安全删除硬件? 发表于 2005-12-01 16:31 ·  中国 广东 广州 白云区 电信
荣誉版主
★★★
积分 718
发帖 313
注册 2005-09-26 00:00
UID 42844
性别 男
状态 离线
近日太多人打印简历了,朋友的机不停地插入U盘、MP3,又不停地从任务栏点击“安全删除硬件”……
想把批处理文件快捷方式放到快速启动栏单击就行,请问能否用批处理做到这事情?代码如何?
谢谢:>
2 发表于 2005-12-01 16:54 ·  中国 山西 临汾 中移铁通
元老会员
★★★★
Batchinger
积分 4,432
发帖 1,512
注册 2002-10-18 00:00
UID 19
性别 男
状态 离线
Re 220110:

批处理的方案暂时没有想到,只是我的印象中,XP下直接插拔 U 盘等设备是不提示报警的,可能需要某些设置,未知。另外,如果确实需要安全删除,可以左键点击硬件图标,这样只需两次鼠标点击即可删除指定设备。
※ Batchinger 致 Bat Fans:请访问 批处理编程的异类 ,欢迎交流与共享批处理编程心得!
3 发表于 2005-12-01 19:50 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
UID 15812
性别 男
来自 广东广州
状态 离线
Re 220110 and willsort:

借助第三方工具 Unlocker 和 unplug 就可以实现批处理快速拔下U盘。

以下内容引用 http://blog.dream4ever.org/venchia/

方法2
在windows这样的图形化界面中无法解决的问题。我们就有必要试一试在黑暗命令行状态下加以解决了。先下载unplug.rar这个软件, 解压缩后运行cmd命令打开命令行提示符窗口,然后使用dir命令进入 unplug.exe文件所在的目录,此处以停止H盘(假设H盘为闪存所在盘)为例。输入unplug H: 命令即可。当然,更高效的方法是做一个批处理来搞定。 (在脚本中cd 命令后的参数"d:\unplug"修改为unplug.exe所在的目录,"h"修改为闪存所占的盘符),将下面的脚本保存成usb.bat,在需要的时候双击就可以了,如果指定热键盘,就能一键卸载了!
usb.bat如下

@echo off
cd d:\unplug
unplug h:

如果unplug也不能搞定的话,那就轮到unlocker出场了

方法3
现在配合unlocker的/s命令行,先对要卸的设备盘符解锁,再unplug,基本上一次就卸了。

附上一个脚本

@echo off 

REM IBM UDISK的特征串 3 USB Mass Storage Device\IC25N020 ATMR04-0 USB Device
echo #|unplug|findstr " USB Mass Storage Device\IC25N020">%temp%\tmpout.txt
for /f "usebackq delims= tokens=1,2,3" %%i in (%temp%\tmpout.txt) do (
"<路径>\Unlocker.exe" %%j /s
unplug %%i |findstr "OK."
if errorlevel 1 pause
)


该脚本里,如果还检测仍然卸不了的情况,若是出现,就运行pause提示一下,若是一闪而过,就可以拨设备了。

说明:
1, 替换成你的U盘的特征串,用unplug 来查看
2, 替换好unlocker的所在路径,建议把unlocker和unplug都放到搜索路径下。
3, 由于unplug不管unplug是否成功,都返回errrorlevel 为1 ,所以,改用findstr来判断是否unplug成功。


所用到的软件下载

unplug.rar
Unlocker.v1.66.GR.rar(1.66绿色版)
Unlocker.v1.7.3.rar
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
4 发表于 2005-12-01 22:35 ·  中国 广东 广州 白云区 电信
荣誉版主
★★★
积分 718
发帖 313
注册 2005-09-26 00:00
UID 42844
性别 男
状态 离线
首先谢谢 两位朋友!特别是小JONG,还把链接地址并上来了!谢谢!

我曾经尝试利用进程来结束掉相关进程,但并没发现有相关进程,只是选择“安全删除硬件”后才出现一个"rundll32.exe"。没用。
5 发表于 2005-12-01 22:40 ·  中国 广东 广州 白云区 电信
荣誉版主
★★★
积分 718
发帖 313
注册 2005-09-26 00:00
UID 42844
性别 男
状态 离线
我试了下小JONG 提供的第二方案,的确是一闪而过无提示,但通过硬件管理查看该硬件还是在启用的,所以还是不敢随便移除,毕竟是客户的东西,损坏了不好……
我们大家再努力!
6 发表于 2005-12-02 23:07 ·  中国 辽宁 锦州 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
UID 40733
性别 男
状态 离线
试试 MS 自己家的东西 DevCon。
DevCon 命令行实用工具可替代设备管理器
概要
DevCon 实用工具是一种命令行实用工具,可以替代设备管理器。使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 还提供与驱动程序开发人员有关、但无法在设备管理器中看到的信息。
链接:http://support.microsoft.com/kb/311272/zh-cn
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

7 发表于 2005-12-03 20:05 ·  中国 广东 广州 白云区 电信
荣誉版主
★★★
积分 718
发帖 313
注册 2005-09-26 00:00
UID 42844
性别 男
状态 离线
DEVCON,好强的一个命令,看到很多很多东西。

玩弄中....
8 发表于 2005-12-07 11:13 ·  中国 安徽 芜湖 电信
高级用户
★★★
积分 866
发帖 415
注册 2005-12-04 11:19
UID 46459
状态 离线
对我来说还是比较高深,还是要多多学习!

右键U盘,“弹出”也行。
9 发表于 2005-12-07 17:37 ·  中国 广东 广州 白云区 电信
荣誉版主
★★★
积分 718
发帖 313
注册 2005-09-26 00:00
UID 42844
性别 男
状态 离线
Originally posted by htysm at 2005-12-7 11:13:
右键U盘,“弹出”也行。


这样也好,还是麻烦了。
如果我做一个快捷方式,再指定一个功能键;那么只要按一下键就可以了。
唉,水平有限,那DEVCON 命令还是搞不来,请大家再帮忙下。谢谢
10 发表于 2005-12-07 20:01 ·  中国 山东 济南 移动
钻石会员
★★★★★
积分 10,046
发帖 3,039
注册 2002-11-11 00:00
UID 223
性别 男
状态 离线
在“设备管理器”中展开“磁盘驱动器”选项,右击U盘,打开“属性”对话框选择“策略”标签,选择“为快速删除而优化”。
简单就是美
论坛跳转: