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
- Apprendimento della formattazione, del filtro e del 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.
gci variable:
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 | Sort CPU -Descending | select -First 3
La variabile CPUHogs ora conterrà i tre processi in esecuzione che utilizzano la maggior parte della CPU.
$CPUHogs.Kill()
Quale ucciderebbe tutti e tre i processi nella raccolta. Se si desidera accedere a un singolo oggetto nella variabile, è necessario trattarlo come un array.
$CPUHogs[0]
Ciò 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 scripters più avanzati prevengono questo tipo di gotcha lanciando la variabile al tipo che si aspettano.
[int]$Number = 5 [int]$Number = ‘5’
Quanto sopra comporterà la variabile Numero contenente un oggetto intero con un valore di 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 ‘Enter your first name’
Write-Output “How-To Geek Rocks!”