【问题标题】:How to determine the current drive letter in autostart in Windows?如何在 Windows 的自动启动中确定当前驱动器号?
【发布时间】:2012-02-14 09:01:35
【问题描述】:

在 Windows 7 下,我为 USB 设备创建了一个自定义自动启动条目。此条目在我的硬盘上启动一个批处理文件,而不是在 USB 驱动器上。我的硬盘始终具有相同的驱动器号。如何告诉批处理文件,将哪个驱动器号分配给 USB 设备,或者如何在批处理文件本身中获取它?

我发现不是%~d0

【问题讨论】:

    标签: windows windows-7 batch-file


    【解决方案1】:

    我很惊讶 %~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 来获取分配的驱动器号。

    【讨论】:

    • 我看到了误解:批处理文件在我的硬盘上,而不是在 USB 驱动器上。我的硬盘总是同名。
    【解决方案2】:
    cd /d %~dp0\ 
    

    它等于 cd /d d:\currentpath\

    %0 是您的批处理文件路径

    【讨论】:

    • 我看到了误解:批处理文件在我的硬盘上,而不是在 USB 驱动器上。我的硬盘总是同名。
    猜你喜欢
    • 2010-09-14
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    相关资源
    最近更新 更多