【问题标题】:batch that return drive letter of USB with specific volume name返回具有特定卷名的 USB 驱动器号的批处理
【发布时间】:2012-08-22 03:29:01
【问题描述】:

我对批处理没有太多经验,需要批处理脚本方面的帮助。 任务是,将驱动器号作为参数返回给 %disk_letter%

想法是用它来搜索:

WMIC LogicalDisk Where VolumeName='MY_USB' Get /Format:list |查找“标题=”

结果是“Caption=G:”。我需要 %disk_leter% 参数等于 "G:" 需要帮助才能完成此脚本。

谢谢!

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    现在在 Linux 上,但这是我认为您需要做的事情。第 1 部分:将 FIND 命令的结果保存到变量中,第 2 部分:获取变量的子字符串。第二部分很简单,所以我将从它开始(假设在第一步中您将变量命名为 var

    @echo %var:~-2%
    

    这大概是我对批处理感到满意的程度,所以接下来的部分是拼凑在一起的:

    要将查找结果存储为变量,请尝试将代码修改为:

    set cmd="WMIC LogicalDisk Where VolumeName='MY_USB' Get /Format:list | FIND "Caption=" "
    
    FOR /F %%i IN (' %cmd% ') DO SET var=%%i
    

    然后(记住上面)输出它:

    @echo %var:~-2%
    

    我正在拼凑第二部分的相关问题是this question,所以如果这不能按预期工作,我会先跳到那个问题。

    【讨论】:

    • 非常感谢,这正是我需要的!
    • @user1615760 太好了!您需要将答案标记为已接受,然后让其他发现此问题的人知道给出的解决方案确实有效。
    【解决方案2】:

    来了……

    @echo off
    
    for /F "usebackq tokens=1,2,3,4 " %%i in (`wmic logicaldisk get caption^,description^,drivetype 
    
    2^>NUL`) do (
    
    if %%l equ 2 (
    echo %%i is a USB drive.
    )
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 2016-08-13
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多