27Jul
Man mano che ci spostiamo semplicemente dai comandi in esecuzione e passiamo alla scrittura di script completi, è necessario un luogo temporaneo per archiviare i dati.È qui che entrano le variabili.
Assicurati di leggere gli articoli precedenti della serie:
- Scopri come automatizzare Windows con PowerShell
- Imparare ad usare i cmdlet in PowerShell
- Imparare come utilizzare gli oggetti in PowerShell
- Imparare la formattazione, il filtraggio e il confronto inPowerShell
- Imparare a utilizzare i servizi remoti in PowerShell
- Utilizzo di PowerShell per ottenere informazioni sul computer
- Utilizzo delle raccolte in PowerShell
E rimanere sintonizzati per il resto della serie per tutta la settimana. Variabili
La maggior parte dei linguaggi di programmazione consente l'uso di variabili, che sono semplicemente contenitori che contengono valori. In PowerShell, anche noi abbiamo variabili e sono davvero facili da usare. Ecco come creare una variabile chiamata "FirstName" e dargli il valore "Taylor".
$ FirstName = "Taylor"
La prima cosa che la maggior parte delle persone sembra chiedere è il motivo per cui mettiamo un segno di dollaro davanti al nome delle variabili, e questa è davvero una buona domanda. In realtà, il simbolo del dollaro è solo un piccolo suggerimento per la shell che vogliamo accedere al contenuto della variabile( pensate a cosa si trova all'interno del contenitore) e non al contenitore stesso. In PowerShell, i nomi delle variabili non includono il simbolo del dollaro, nel senso che nell'esempio precedente il nome delle variabili è in realtà "FirstName".
In PowerShell, puoi vedere tutte le variabili che hai creato nella variabile PSDrive.
variabile gci:
Ciò significa che è possibile eliminare una variabile dalla shell in qualsiasi momento:
Remove-Item Variable: \ FirstName
Le variabili non devono contenere neanche un singolo oggetto;puoi facilmente memorizzare più oggetti in una variabile. Ad esempio, se si desidera memorizzare un elenco di processi in esecuzione in una variabile, è sufficiente assegnargli l'output di Get-Process.
$ Proc = Get-Process
Il trucco per capire questo è ricordare che il lato destro del segno di uguale viene sempre valutato per primo. Ciò significa che puoi avere un'intera pipeline sul lato destro, se lo desideri.
$ CPUHogs = Get-Process |Ordina CPU -Descending |select -First 3
La variabile CPUHogs ora conterrà i tre processi in esecuzione utilizzando la maggior parte della CPU.
Quando si dispone di una variabile contenente una raccolta di oggetti, ci sono alcune cose da tenere presente. Ad esempio, chiamando un metodo sulla variabile verrà richiamato su ogni oggetto nella raccolta.
$ CPUHogs. Kill()
Che avrebbe ucciso tutti e tre i processi nella raccolta. Se si desidera accedere a un singolo oggetto nella variabile, è necessario trattarlo come un array.
$ CPUHogs [0]
In questo modo otterrai il primo oggetto nella raccolta.
non essere catturato! Le variabili
in PowerShell sono debolmente tipizzate per impostazione predefinita, il che significa che possono contenere qualsiasi tipo di dati, questo sembra catturare sempre nuovi arrivati in PowerShell!
$ a = 10
$ b = '20'
Quindi abbiamo due variabili, una contiene una stringa e l'altra un intero. Quindi cosa succede se li aggiungi? In realtà dipende dall'ordine in cui vengono aggiunti.
$ a + $ b = 30
Mentre
$ b + $ a = 2010
Nel primo esempio, il primo operando è un intero, $ a, quindi PowerShell pensa chestai provando a fare matematica e quindi cerchi di convertire anche qualsiasi altro operando in numeri interi. Tuttavia, nel secondo esempio il primo operando è una stringa, quindi PowerShell converte semplicemente il resto degli operandi in stringhe e li concatena. Gli scripters più avanzati prevengono questo tipo di gotcha lanciando la variabile al tipo che si aspettano.
[int] $ Number = 5
[int] $ Number = '5'
Quanto sopra sarà sia la variabile Number che contiene un oggetto intero con un valore di 5.
Input e Output
Perché PowerShell ha lo scopo di automatizzare le cose, vorrai evitare di chiedere agli utenti informazioni per quanto possibile. Detto questo, ci saranno dei momenti in cui non è possibile evitarlo, e per quelle volte abbiamo il cmdlet di Read-Host. Usarlo è molto semplice:
$ FirstName = Read-Host -Prompt 'Inserisci il tuo nome'
Qualsiasi cosa tu inserisca verrà quindi salvata nella variabile. L'output di scrittura
è altrettanto semplice con il cmdlet Write-Output.
Write-Output "How-To Geek Rocks!"
Unisciti a noi domani dove leghiamo tutto ciò che abbiamo imparato insieme!