Найти букву USB-накопителя - PullRequest
0 голосов
/ 25 апреля 2009

Мне нужно получить букву диска USB-накопителя. Команда CHDIR> drive.txt дает мне букву диска L:. Как мне прочитать / получить эту информацию "L:" без кавычек в переменную в моем пакетный файл

Ответы [ 5 ]

2 голосов
/ 23 ноября 2013

Вот как получить букву 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 голос
/ 02 мая 2015
for %%a in (d e f g h i j k l m n o p q r s t u v w x y z) do vol %%a: 2>nul |find "NAME OF THE USB" >nul && 
set drv=%%a:
%drv%

Это то, что я использую, чтобы найти письмо на моем USB

  • Просто измените «ИМЯ USB» на имя USB
1 голос
/ 19 августа 2009

Используя, в вашей партии, что-то вроде:

set Drive=%cd:~0,2%

Получил бы содержимое L: , как вы и просили, если это текущий каталог, в котором находится скрипт, в тот момент, когда вы его используете. Если в пакете есть несколько popd / pushd, cd и т. Д., Будьте осторожны при их использовании. Остальное зависит от вас

Предоставление информации о том, как вы будете его использовать (возможно, часть вашей партии), поможет получить лучший ответ. Мы можем только догадываться. Я думаю, что причина в паре для петель в ответах. Может и не понадобиться, но мы догадываемся.

1 голос
/ 25 апреля 2009

Независимо от 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
0 голосов
/ 25 апреля 2009

Так как cd выведет что-то вроде:

c:\documents and settings\pax

вам нужно просто захватить первое поле, используя "\" в качестве разделителя, следующим образом:

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

Это установит переменную окружения curdrv в c: для вышеупомянутого вывода.

Не забудьте использовать вариант double-% (%% d), если он работает внутри файла cmd.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...