Utilizzo di file batch, parte 2
Questo suggerimento si basa sul suggerimento intitolato Using Batch Files, Part 1, quindi potresti volerlo controllare prima di procedere. Nello specifico, stiamo lavorando con un file chiamato “C: \ Bat \ Fun.bat”, quindi visualizza una finestra del prompt dei comandi e cambia la directory predefinita in C: \ Bat. Avvia il blocco note per modificare Fun.bat, che attualmente assomiglia a questo:
@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file. DIR %1
L’ultimo comando nel file è il comando DIR. Crea un elenco di directory della cartella specificata come primo parametro passato al file batch. Se non vuoi che l’elenco venga visualizzato sullo schermo, puoi usare il carattere “>” per indirizzare l’output a un file. Quindi modifichiamo Fun.bat per accettare due parametri. La prima sarà la cartella di cui si desidera ottenere l’elenco delle directory e la seconda sarà il file in cui si desidera che vada questo output. Il tuo file batch dovrebbe assomigliare a questo:
@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file. DIR %1 > %2
Si invoca come prima tranne che ora si specifica il secondo parametro sulla riga di comando:
C:\Bat> Fun.bat C:\Temp C:\Temp\Dirlist.txt
Esegui il file batch e ti ritroverai con un file chiamato C: \ Temp \ Dirlist.txt che contiene l’elenco di directory di tutti i file nella directory C: \ Temp.
Supponiamo di avere migliaia di file nella directory C: \ Temp. Invece di passare attraverso il lungo elenco, potresti solo voler sapere se un particolare file è lì e quanto è grande. Puoi farlo collegando l’output del comando DIR a un nuovo comando, FIND.
In generale, la maggior parte dei comandi che producono dati di output (come quelli prodotti da DIR) possono essere utilizzati come input per un altro comando, tutti sulla stessa riga. Questo si chiama “piping” e il carattere utilizzato per questa operazione è la barra verticale (“|”). Il comando in attesa di input, nel nostro caso TROVA, appare a destra del carattere “pipe” (la barra verticale). Quindi sostituiamo il nostro precedente comando DIR con uno che convoglia il suo output a FIND:
@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file. DIR %1 | FIND "Dirlist"
L’effetto di questa modifica è di eseguire il comando DIR sulla cartella specificata, ma inviare il suo output al comando FIND, che a sua volta cerca in quell’output la stringa “Dirlist” e visualizza i risultati sullo schermo. Notare che passeremo solo un parametro: il nome della cartella su cui eseguire il DIR. Se dimentichi e ti capita di specificare un secondo parametro, non c’è problema. Poiché non è presente “% 2” nel file batch, eventuali parametri aggiuntivi verranno ignorati.
Le ultime cose da trattare in questo suggerimento riguardano il tempo. C’è un comando chiamato “TIME / T” che mostra l’ora corrente. C’è anche un comando chiamato TIMEOUT che fa sospendere il lavoro batch per un dato numero di secondi. Infine, c’è un altro carattere speciale che puoi usare in un file batch, vale a dire, la e commerciale (“&”). Concatena insieme due (o più) comandi che appaiono sulla stessa riga. Usiamo questi comandi per visualizzare l’ora corrente, attendere cinque secondi e scrivere la nuova ora sullo schermo. Il file batch dovrebbe assomigliare a questo:
@ECHO OFF REM This file demonstrates the use of a few command-line statements ECHO Hello. This is my Fun.bat file. DIR %1 | FIND "Dirlist" ECHO The current time is & TIME /T TIMEOUT 5 ECHO The new current time is & TIME /T
Questo è un po ‘di più sui file batch. C’è molto di più che possono fare, ma vorrei valutare quanto interesse ci sia prima di scrivere molto di più su di loro. Se sei così propenso, indica nei commenti, di seguito, se desideri continuare a saperne di più sui file batch.
Questo suggerimento (13103) si applica a Windows 7, 8 e 10.