PDA

View Full Version : Aiuto con batch per elenco cartelle e file


vidario
23-01-2016, 22:21
CIao a tutti, vorrei creare un file batch con le seguenti caratteristiche:

Deve generare un unico file di testo che riporti l'elenco delle cartelle e dei file di diversi dischi (D:, E:, F:,T:,ecc.)
Deve includere cartelle e file nascosti, ma non file di sistema
Deve essere schedulabile e sovrascrivere sempre il file precedente
Il contenuto del file che deve essere generato è molto semplice, mi basterebbe la struttura ad albero delle cartelle con i relativi file in esse contenuti (non mi servono attributi, date di creazione, ecc.)


Secondo voi è fattibile con un semplice file bat? Ho provato con il comando dir con gli attributi /A/S/B e mi sembra possa andare, ma so farlo solo con un disco alla volta e invece vorrei fare i dischi in sequenza generando un unico file di output.
Mi date una mano per favore??:) :)

Grazie mille

x_Master_x
24-01-2016, 09:46
@ECHO OFF
ECHO Report > Output.txt
ECHO. >> Output.txt

Setlocal EnableDelayedExpansion
WMIC logicaldisk where drivetype=3 get caption>%~n0.tmp
FOR /f "tokens=1-3 skip=1" %%a in ('type "%~n0.tmp"') do call :Info %%a
DEL "%~n0.tmp"
goto :END

:Info
Set Drive=%1
ECHO DRIVE %Drive%
ECHO INIZIO DIR
DIR /A/B/S %Drive%\ >> Output.txt
ECHO FINE DIR
ECHO.
ECHO. >> Output.txt
goto :EOF

:END
ECHO Operazione terminata
PAUSE

vidario
24-01-2016, 18:39
Grazie mille!!:) :) :) Fa esattamente quello che mi serve.. Ne approfitto per chiederti un'ultima cosa: se volessi fare il dir solo per determinati drive e non per tutti cosa dovrei modificare?

Grazie ancora!

x_Master_x
24-01-2016, 18:57
Non si quotano i post con i codici, edita per cortesia. Una cosa del genere:

:Info
Set Drive=%1
Set True=0
If %Drive%==X: (
Set True=1
)
If %Drive%==Y: (
Set True=1
)
If %True%==1 (
ECHO DRIVE %Drive%
ECHO INIZIO DIR etc.
)