Blog ❯ Autore: Fabio Moschini|Data: 08.12.2022
Esempi con PowerShell
Powershell

Esempi di script con PowerShell
Versione
Per visualizzare la versione di PowerShell installata sul computer, si può utilizzare:Help in linea
Il comando:permette di avere informazioni sui comandi (cmdlets) e sulla loro sintassi.Esempio:
Creazione di una directory
Si utilizza il cmdlets:Specificando solo il nome della nuova directory, questa verrà creata nella directory corrente.L'opzione -ItemTypepermette di definire il tipo di oggetto da creare.
Per creare un file, si può utilizzare questo cmdlets:
Copia di una directory
Per copiare una directory con tutto il contenuto, utilizziamo il cmdlets:La copia può avvenire da un disco ad un altro oppure sullo stesso disco.Eliminazione di una directory
Per cancellare una directory con tutto il suo contenuto, si può utilizzare:Se non si specifica il parametro -Recurse e la directory contiene elementi, viene chiesta la conferma di cancellazione.Spostamento di una directory
Per spostare una directory utilizziamo:Ridenominazione di una directory
Il cmdlets da utilizzare è:Verificare l'esistenza di una directory
Per verificare se una directory esiste, utilizziamo:L'output sarà true, se la directory esiste, oppure false, se la directory non esiste.Creazione di un file
Utilizziamo il cmdlets New–Item già visto per la creazione di una directory:Copia di un file tra due directory
Per questo compito, utilizziamo:Se non specifichiamo il nome del file per la directory di destinazione, il file manterrà il nome originario.Cancellazione di un file
Per cancellare un file, utilizziamo:Spostamento di un file
Per spostare un file utilizziamo lo stesso cmdlets usato per le directory:Se non specifichiamo il nome del file per la directory di destinazione, il file manterrà il nome originario.Ridenominazione di un file
Il cmdlets da utilizzare è:Verificare l'esistenza di un file
Per verificare se un file esiste, utilizziamo:L'output sarà true, se il file esiste, oppure false, se il file non esiste.Leggere il contenuto di un file
Per visualizzare il contenuto d un file, utilizziamo:Visualizzare la data e l'ora correnti
Per visualizzare la data e l'ora correnti, si può utilizzare:Se non specifichiamo alcun parametro, la visualizzazione avviene nel formato esteso si aper la data che per l'ora.Per visualizzare la data e l'ora nel formato breve:Per visualizzare solo la data corrente, specifichiamo il parametro -DisplayHint Date:In modo analogo, per visualizzare solo l'ora corrente, scriviamo:
Modifica della data di sistema
Possiamo modificare la data e l'ora di sistema con il cmdlets:Per spostare l'ora di sistema indietro di 15 minuti, utilizziamo il seguente cmdlets:Attenzione
Per utilizzare il comando Set-Date, è necessario aprire la finestra di PowerShell con diritti di amministratore.Creare un file XML
Abbiamo già visto come creare un nuovo file utilizzando il cmdlets New–Item. Nello specifico, per creare un file XML dovremo specificare la sua estensione:Per aggiungere il contenuto al file appena creato, utilizziamo il cmdletsSet-Content:Per leggere il contenuto del file, utilizziamo il comando:Cancellare il contenuto di un file
Per questa operazione, utilizziamo il comando:Aggiungere testo ad un file
Per aggiungere una porzione di testo ad un file (append), utilizziamo:Le variabili
Le variabili in PowerShell iniziano con il simbolo $, seguito da lettere, numeri o carattere _. Nel caso in cui volessimo utilizzare caratteri "speciali" nel nome di una variabile, dovremmo includere il nome tra le parentesi { e }. Esempio:Per assegnare il valore ad una variabile, utilizziamo l'operatore =:Abbiamo a disposizione anche l'assegnamento multiplo:In questo modo, tutte le variabili sono valorizzate con il valore 3.Possiamo assegnare valori diversi a variabili diverse in una sola riga di codice, con questa sintassi:Possiamo anche assegnare più valori alla stessa variabile, definendo in questo modo un array:Per accedere al singolo elemento utilizziamo le parentesi quadre per indicare l'indice dell'array:Il valore mostrato sarà 134. Possiamo anche visualizzare i valori ordinati e ignorare i duplicati:Per sapere quanti valori sono contenuti in un array, scriviamo:E' possibile inizializzare il contenuto di un array utilizzando diverse modalità. Ad esempio, per inizializzare un array di interi consecutivi, si può scrivere:In questo modo, l'array $elenco avrà nella posizione [0] il valore 4, nella posizione [1] il valore 5 fino alla posizione [6] con il valore 10.
Possiamo estrarre una porzione dell'array:L'array $subelenco conterrà i valori 5, 6, 7 nelle posizioni [0], [1], [2].
Misurazioni
PowerShell mette a disposizione il cmdlets Measure-Object per effettuare misurazioni di varia natura. Vediamo alcuni esempi:- Per calcolare il numero di file e cartelle della directory corrente:
- Per calcolare la dimensione minima e massima dei file contenuti in una directory, la somma delle dimensioni e il valore medio:
- Per calcolare il numero di caratteri, di parole e di righe in un file di testo:
Visualizzare il contenuto di una directory
Tramite il cmdlets Get-ChildItem possiamo visualizzare il contenuto di una directory:Non spcificando la directory, otteniamo il contenuto della directory corrente:E' possibile filtare l'output in modo da visualizzare solo i file ocn una certa estensione:Il parametro -Recurse permette di cercare i file anche all'interno delle subdirectory mentre -Force permette di allargare la ricerca anche ai file di sistema e nascosti.Confrontare due file di testo
Per confrontare due file testuali si può utilizzare il seguente cmdlets:Mettere in pausa l'esecuzione di uno script
Per fermare l'esecuzione dei comandi all'interno di uno script, si può utilizzare:per impostare una pausa in millisecondi oppure:per definire la pausa in secondi.Alias
Gli Alias sono un'alternativa ai nomi utilizzati per i cmdlets. Ad esempio, si può definire un alias per il cmdlets Get-Help in questo modo:Da questo momento, possiamo utilizzare l'alias Aiuto allo stesso modo in cui utilizziamo il cmdlets Get-Help.Gli alias sono validi solo all'interno della sessione in cui sono stati creati.
E' possibile utilizzare il cmdlets Export-Alias per salvare le informazioni sugli alias in un file.
Per visualizzare tutti gli alias definiti nella sessione corrente, si utilizza:
PowerShell Backtick
PowerShell supporta un insieme di sequenze di caratteri speciali, conosciute anche come sequenze di escape. Ogni sequenza inizia con il carattere ` (Backtick). Vediamone alcuni:| Sequenza | Descrizione |
|---|---|
| `t | Horizontal tab |
| `n | New line |
| `v | Vertical tab |
| `b | Backspace |
| `e | Escape |
| `0 | Null |
| `a | Alert |
| `f | Form feed |
| `r | Carriage return |
| `u{x} | Unicode escape sequence |
Esempio:Output:
Questo testo appare sulla prima riga
Seconda riga Esempio TAB
Seconda riga Esempio TAB
Operazioni su stringhe: Split e Join
L'operazione di split permette di suddividere una stringa in funzione di un carattere o di una sottostringa.In PowerShell può essere utilizzato l'operatore -split.
Ad esempio, per suddividere una frase in parole si può utilizzare questo script:L'output è:
Questa
stringa
elaborata
con
l'operatore
-split
stringa
elaborata
con
l'operatore
-split
Si può effettuare lo split di una stringa anche in funzione di un'altra stringa:L'ouuput è:
Que
a
ringa dopo essere
ata splittata
a
ringa dopo essere
ata splittata
L'operazione opposta allo split, ovvero join, permette di unire più stringhe. Esempio:L'output è:
Stringa ottenuta utilizzando -join