问题就在这里。我们有数百个外部 500GB USB 驱动器。一年中,每次驾驶都会行驶到一个新的地点。自动检测 USB 驱动器已插入 Windows 系统并分配 Z:\ 驱动器盘符的最佳方法是什么?这些 USB 驱动器将被插入许多不同的计算机中,因此像这样的脚本
import subprocess
diskpart_data = "z-drive.txt"
open (diskpart_data, "w").write ("""
select volume F:
assign letter=Z
""")
subprocess.call ('diskpart /s %s' % diskpart_data)
由于移动 USB 驱动器在不同 Windows 系统上的动态特性始终难以使用?您可以通过 WMI 自动检测或使用 NTFS 进行某种卷安装吗?
正如 terabytetest 所说,您可以从驱动器根目录中的 autorun.inf 运行脚本。就我个人而言,我会使用批处理脚本:
(echo select volume %~d0 && echo assign letter=Z) | diskpart
the %~d0
检索当前正在执行的批处理文件的驱动器号。
如果这还不够,有一种方法可以在插入可移动驱动器时收到通知,方法是使用设备管理功能Windows API 的。您必须首先使用注册通知RegisterDeviceNotification()然后处理WM_DEVICECHANGE事件循环中的消息。不幸的是,这需要一个事件循环,我不知道如何在 python 中轻松创建一个事件循环(除了从头开始创建它:here是一个示例消息循环,请注意,在您的情况下,您不需要创建窗口,只需要一个消息循环)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)