Geek School Learning PowerShell Variabili, input e output
Mentre ci spostiamo dal semplice comando 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 a utilizzare i cmdlet in PowerShell
- Apprendimento Come utilizzare gli oggetti in PowerShell
- Imparare la formattazione, il filtraggio e il confronto in PowerShell
- Impara a utilizzare i servizi remoti in PowerShell
- Utilizzo di PowerShell per ottenere informazioni sul computer
- Lavorare con le raccolte in PowerShell
E rimanete 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 puoi 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 è sempre valutato per primo. Ciò significa che puoi avere un'intera pipeline sul lato destro, se lo desideri.
$ CPUHogs = Get-Process | Ordina CPU -Descending | selezionare -Primo 3
La variabile CPUHogs ora conterrà i tre processi in esecuzione che utilizzano la maggior parte della CPU.
Quando hai una variabile contenente una collezione 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 ()
Quale ucciderebbe tutti e tre i processi nella raccolta. Se si desidera accedere a un singolo oggetto nella variabile, è necessario trattarlo come una matrice.
$ CPUHogs [0]
Questo ti darà il primo oggetto nella collezione.
Non farti prendere!
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 li aggiungi.
$ a + $ b = 30
Mentre
$ b + $ a = 2010
Nel primo esempio, il primo operando è un intero, $ a, quindi PowerShell pensa che tu stia cercando di 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 scripter più avanzati prevengono questo tipo di trucco lanciando la variabile al tipo che si aspettano.
[int] $ Number = 5
[int] $ Number = '5'
Quanto sopra avrà come risultato la variabile Numero contenente un oggetto intero con valore 5.
Ingresso e uscita
Poiché 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 è davvero semplice:
$ FirstName = Read-Host -Prompt 'Inserisci il tuo nome'
Qualsiasi cosa tu inserisca verrà quindi salvata nella variabile.
La scrittura dell'output è 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!