参考USB没有驱动器号


0

我的客户有一个程序,它安装在闪存驱动器上。我想发送一个更新(MSI或EXE),删除驱动器上的一个文件,并将其替换为另一个文件。

在Mac上,这很容易,因为所有外部驱动器都按名称引用并存储在同一文件夹中(例如Volumes / MyDrive),但Windows使用驱动器号(F:\ E:\),如果客户端有任何不同的设置,它们可以更改甚至只是插入另一个驱动器。

如何在不使用(可能不正确的)驱动器号的情况下引用目标闪存驱动器?


让用户输入驱动器号以执行更新。或者提供一个批处理文件,他们可以将其复制到闪存驱动器以启动升级,因为批处理文件可以报告正在运行的驱动器。
Ƭᴇcʜιᴇ007

我不想让用户做任何工作(如果可能的话),因为他们中的大多数都不懂电脑。
corpico

1
尝试 wmic LogicalDisk where "DriveType=2 or DriveType=3" get DeviceID, DriveType, VolumeName, VolumeSerialNumber 如果你能够在输出中识别你的闪存驱动器(或从输出中识别 wmic LogicalDisk get /value )然后你可以使用解析它 for /F 循环获取其驱动器号。
JosefZ

很棒的解决方案!非常感谢@JosefZ!
corpico

别客气。随意给出自己的答案,然后考虑将其标记为已接受。 看到这个页面 解释为什么这很重要。
JosefZ

Answers:


0

请参阅JosefZ的评论,了解在Windows中获取驱动器名称的一个很好的单行解决方案。

最后我最终使用了Java。以下是相关代码供将来参考:

FileSystemView fsv = FileSystemView.getFileSystemView();
File[] f = File.listRoots();
for(File file : f)
    System.out.println(fsv.getSystemDisplayName(file));
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.