查找USB驱动器号

时间:2009-04-25 08:47:25

标签: batch-file

我需要获取usb笔驱动器的驱动器号。命令CHDIR> drive.txt给我驱动器号L:。如何读取/获取此信息“L:”,不带引号到变量中我的批处理文件

4 个答案:

答案 0 :(得分:2)

以下是如何从任何驱动器获取USB驱动器号。

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

答案 1 :(得分:1)

伪变量chdir也可以使用%CD%输出。所以你已经拥有了一个包含该信息的变量。

否则您可以使用for

for /f "delims=" %%x in ('chdir') do set "drive=%%x"

但我认为%CD%更容易: - )

编辑:你已经用引号说了。除非你想要它们,否则变量中不会有任何引号。

关于尾部反斜杠:您可以使用以下代替%CD%

%CD:~0,-1%

将展开%CD%并删除最后一个字符,你知道它是反斜杠。

但是,只有当您在该驱动器的根目录中时才会起作用。否则你也可以使用

for %%x in (%cd%) do @set drive=%%~dx

答案 2 :(得分:1)

在批处理中使用以下内容:

set Drive=%cd:~0,2%

如您所知,如果这是脚本所在的当前目录,则会在您使用它时提供 L:的内容。如果您在批处理中有一些popd / pushd,cd等,请在使用时注意。其余的由你决定

提供你如何使用它(可能是批量的一部分)将有助于获得更好的答案。我们只能猜到。我认为,原因是答案中的循环。可能不需要,但我们猜测。

答案 3 :(得分:0)

由于cd将输出如下内容:

c:\documents and settings\pax

您需要使用"\"作为分隔符抓取第一个字段,如下所示:

for /f "delims=\" %d in ('cd') do set curdrv=%d

这将为上述输出将环境变量curdrv设置为c:

如果在cmd文件中运行,请不要忘记使用双%(%% d)变体。