1

Итак, я знаю, что это создает список файлов на диске:

SET /P drive=Enter drive letter: 
tree %drive%: /a > "C:\Drivelists\%listname%.txt"

но я не знаю, как автоматически получить имя диска для замены этого списка. Я знаю, что этот, по крайней мере, дает мне имя:

wmic logicaldisk where name="%drive%:" get volumename

Но я не знаю, смогу ли я хоть как-то получить оттуда или есть лучший способ. Я предполагаю, что это довольно простая задача, но я просто не знаю ключевой элемент здесь. Предложения?

1 ответ1

0

Как установить переменную на имя тома диска?

Следующий пакетный файл показывает, как это сделать с помощью команды for /f :

@echo off
setlocal
setlocal enabledelayedexpansion
set /p _drive=Enter drive letter:
for /f "usebackq skip=1" %%i in (`wmic logicaldisk where name^="%_drive%:" get volumename`) do (
  set _volume=%%i
  goto :done
  )
:done
@echo %_volume%
tree %_drive%: /a > "C:\Drivelists\%_volume%.txt"
endlocal

Заметки:

  • skip=1 используется для пропуска строки заголовка wmic .
  • goto :done - использовать для пропуска лишней пустой строки wmic .
  • C:\Drivelists\ уже должен существовать.
  • Не все диски имеют имена томов.

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • for /f - Циклическая команда против результатов другой команды.
  • set - отображать, устанавливать или удалять переменные окружения CMD. Изменения, сделанные с помощью SET, будут сохраняться только в течение текущего сеанса CMD.
  • tree - отображать структуру папок диска или пути в виде графического дерева.Отобразите структуру папок диска или пути в виде графического дерева.
  • wmic - команда инструментария управления Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .