Script por lotes para enumerar todos los archivos en el disco

Script por lotes para enumerar todos los archivos en el disco

Me gustaría crear un pequeño archivo por lotes que me incluya todo en un archivo de disco. El comando es este:

TREE L: / F / A> List.txt

Pero me gustaría que el usuario ingrese la letra de la unidad a procesar y el resultado se coloque en un archivo con el nombre y la fecha actual. Ejemplo:

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

El resultado debe ingresarse en un archivo llamado por ejemplo List_2017-03-13.txty moverse al Escritorio

¿Qué comandos debo usar para crear el script?

Respuesta1

El siguiente lote usa wmic para

  • obtener una fecha independiente de configuración local/usuario
  • obtener una lista de letras de unidad disponibles
  • y opción para seleccionar una 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

Diálogo de muestra:

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...

Respuesta2

árbol2txt.bat:

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

Uso: tree2txt X:

Resultado: árbol de la unidad X:\ a un archivo llamado Tree_X_20170313.TxT

Tenga en cuenta que el formato de salida de la fecha depende de la configuración de formato de fecha local (aaaa-mm-dd y otros formatos).

información relacionada