返回具有特定卷名的USB驱动器号的批处理

时间:2012-08-22 03:29:01

标签: batch-file

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

想法是用于搜索:

WMIC LogicalDisk其中VolumeName ='MY_USB'Get / Format:list |找到“Caption =”

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

谢谢!

2 个答案:

答案 0 :(得分:0)

现在在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所以如果这不能按预期工作,我会首先跳到那个。

答案 1 :(得分:0)

这里......

@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.
)
)