martedì 22 gennaio 2019

Trovare i file in tutte le sottocartelle con il comando DIR (e filtrarli, se necessario) - episodio 2

Buongiorno e benvenuti a questo secondo episodio della mini-serie dedicata al comando dir.
Se non avete ancora letto il primo articolo, fatelo ora qui

http://scriptomane.blogspot.com/2019/01/dir-avanzato-sottocartelle-1.html



Oggi procediamo con le presentazioni dei vari parametri più o meno sconosciuti di DIR e le loro funzionalità.

Buona lettura!

Come ordinare i files/cartelle per …

Quindi prendiamo l’opzione del comando /O, per ordinare l’output in base ad un attributo. IN questo caso scegliamo la data di ultima modifica. Quindi:

Dir /S /B /OD



… e per ordinare dal più recente:

dir /S /B /O-D



Se vogliamo poi usare una data diversa da quella di ultima scrittura / modifica, possiamo usare l’ulteriore opzione /T, che determina QUALE data usare per l’ordinamento:

C  Creazione
A  Ultimo accesso
W  Ultima scrittura


Come eseguire un comando su ogni file o cartella presente in tutte le sottodirectory

… e, per finire, un tema che, spero, stuzzicherà la vostra fantasia.

Supponiamo di essere stati incaricati di appendere una riga di testo in tutti i files formato TXT contenuti in un albero di cartelle. Questa riga di testo dovrà separarsi dalle precedenti con una riga vuota e costituire il “footer” di tutte le comunicazioni antecedenti alla data odierna.
Ed ecco che, con una riga di comando, senza neppure scomodare il file .bat …
Siamo in grado di adempiere al nostro compito nel modo più efficace ed efficiente possibile:

FOR /F “usebackq delims=; tokens=*” %a IN (`DIR /A-D /S /B c:\interventi\test\*.txt`) DO (
Echo.>>%a
Echo --- footer - comunicazione antecedente alla data %date% --->>%a
)





Come sempre, ricordatevi che, se lo volete inserire in un file batch, le %a devono diventare %%a

… detto questo …

Happy Scripting a tutti!

Nessun commento:

Posta un commento

I commenti sono soggetti a moderazione, prima di essere pubblicati.

Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.