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