Script em lote para listar todos os arquivos no disco

Script em lote para listar todos os arquivos no disco

Gostaria de criar um pequeno arquivo em lote que liste tudo em um arquivo de disco. O comando é este:

TREE L: / F / A> List.txt

Mas gostaria que o usuário digitasse a letra da unidade a ser processada e o resultado fosse colocado em um arquivo com o nome e a data atual. Exemplo:

C:\> makelist.bat
Please, insert the drive letter: L
Done!

O resultado deve ser inserido em um arquivo com nome de exemplo List_2017-03-13.txte movido para a Área de Trabalho

Quais comandos devo usar para criar o script?

Responder1

O lote a seguir usa wmic para

  • obter uma data independente de localidade/configurações do usuário
  • obter uma lista de letras de unidade disponíveis
  • e escolha para selecionar uma letra

:: makelist.bat
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
set Started=%date% %time%
:: get locale/user-settings independent date
for /f "delims=." %%A in (
  'wmic os get LocalDateTime^|findstr ^^[0-9]'
) do Set "DT=%%A"
Set MyDate=%DT:~0,4%-%DT:~4,2%-%DT:~6,2%

:: gather available drives
Set "Drives="
FOr /f "delims=:" %%A in (
  'Wmic logicaldisk get name^|findstr "^[A-Z]:"'
) DO Set "Drives=!Drives!%%A"

:: choose drive letter
Choice /C %Drives% /M "Select drive letter for tree"
Set /A "Inp=%Errorlevel%,Pnt=Inp-1"
IF %Inp% equ 0   Echo aborted & pause & exit /B 1
If %Inp% equ 255 Echo aborted & pause & exit /B 1
Set "Drive=!Drives:~%Pnt%,1!"

:: do the tree 
Echo %Started% Tree started
Echo Tree %Drive%:\ /F /A  "%UserProfile%\Desktop\Tree_%Drive%_%MyDate%.txt"
     Tree %Drive%:\ /F /A >"%UserProfile%\Desktop\Tree_%Drive%_%MyDate%.txt"
Echo %date% %time% done
timeout -1

Exemplo de diálogo:

Select drive letter for tree [C,D,E,G,H,K,M,N,P,Q,R,T,U,V,W,X,Z]?H
2017-03-13 14:17:05,45 Tree started
Tree H:\ /F /A "C:\Users\UserName\Desktop\Tree_H_2017-03-13.txt"
2017-03-13 14:17:13,70 done

Drücken Sie eine beliebige Taste, um den Vorgang fortzusetzen...

Responder2

árvore2txt.bat:

@tree %1 / F / A > Tree_%1_%date.TxT

Uso: tree2txt X:

Resultado: árvore da unidade X:\ para um arquivo chamado Tree_X_20170313.TxT

Observe que o formato de saída da data depende das configurações locais de formato de data (aaaa-mm-dd e outros formatos).

informação relacionada