Crie uma lista dos arquivos em um disco rígido e nomeie a lista usando o nome do volume

1

Então, eu sei que isso cria uma lista dos arquivos na unidade:

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

mas não sei como obter o nome da unidade automaticamente para substituir esse nome de lista. Eu sei que este pelo menos me dá o nome:

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

Mas eu não sei se de alguma forma eu posso conseguir de lá ou se há um jeito melhor. Eu estou supondo que é uma tarefa fácil, mas eu não sei o elemento chave aqui. Sugestões?

    
por Odding 27.10.2015 / 10:43

1 resposta

0

Como faço para definir uma variável para um nome de volume da unidade?

O arquivo em lote a seguir mostra como fazer isso usando o comando 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

Notas:

  • skip=1 é usado para pular a linha de cabeçalho wmic .
  • goto :done é usado para pular a linha em branco extra wmic .
  • C:\Drivelists\ já deve existir.
  • Nem todas as unidades têm nomes de volume.

Leitura Adicional

  • Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
  • para / f - Comando Loop contra os resultados de outro comando.
  • definir - Exibir, definir ou remover variáveis de ambiente do CMD. As alterações feitas com o SET permanecerão apenas pela duração da sessão atual do CMD.
  • árvore - Exibe a estrutura de pastas de uma unidade ou caminho como uma árvore gráfica.Exiba a estrutura de pastas de uma unidade ou caminho como uma árvore gráfica.
  • wmic - Comando de instrumentação de gerenciamento do Windows.
por 27.10.2015 / 11:31