【发布时间】:2012-02-14 09:01:35
【问题描述】:
在 Windows 7 下,我为 USB 设备创建了一个自定义自动启动条目。此条目在我的硬盘上启动一个批处理文件,而不是在 USB 驱动器上。我的硬盘始终具有相同的驱动器号。如何告诉批处理文件,将哪个驱动器号分配给 USB 设备,或者如何在批处理文件本身中获取它?
我发现不是%~d0
【问题讨论】:
标签: windows windows-7 batch-file
在 Windows 7 下,我为 USB 设备创建了一个自定义自动启动条目。此条目在我的硬盘上启动一个批处理文件,而不是在 USB 驱动器上。我的硬盘始终具有相同的驱动器号。如何告诉批处理文件,将哪个驱动器号分配给 USB 设备,或者如何在批处理文件本身中获取它?
我发现不是%~d0
【问题讨论】:
标签: windows windows-7 batch-file
我很惊讶 %~d0 不起作用,但你的批处理文件运行了。
如果您可以为您的 USB 设备分配一个唯一的卷标,那么您可以尝试以下方法:
for /f %%D in ('wmic volume get driveLetter^, label ^| find "yourLabel"') do set drive=%%D
阅读评论后编辑 - 好的,%~d0 应该不起作用,因为它只会给出你的 bat 文件所在的驱动器号 - 你的硬盘驱动器。
我仍然认为 WMIC 是您需要的实用程序。如果您正在寻找特定设备,那么我认为我的原始答案可能有效。另一种可能性是在 wmic 命令中用 serialNumber 代替 label。插入您的设备,手动识别它是哪个驱动器号,然后从命令行键入wmic volume get driveLetter, serialNumber 以识别您要查找的序列号。然后您可以在批处理文件中使用以下内容
for /f %%D in ('wmic volume get driveLetter^, serialNumber ^| find "yourSerialNumber"') do set drive=%%D
另一种可能是将批处理文件放在 USB 设备上。如果您可以自动启动以从您的设备启动批处理文件,那么您可以使用%~d0 来获取分配的驱动器号。
【讨论】:
cd /d %~dp0\
它等于 cd /d d:\currentpath\
%0 是您的批处理文件路径
【讨论】: