Windows PowerShell: Splatting

Raggruppamento di parametri prima di inviarli insieme a un comando consente di risparmiare tempo, ma solo se si sta utilizzando la versione più recente di Windows PowerShell.

Don Jones

Qualora l'altro, ma il settore IT può utilizzare una parola come "splatting" in un contesto serio e professionale? Riparazione di parabrezza, forse, ma non molte altre posizioni.

In termini di Windows PowerShell, splatting è un metodo di raggruppamento di parametri a un comando. Si tratta di una nuova funzionalità di Windows PowerShell 2. 0. Se sta ancora guidare con la versione 1 (ad esempio, poiché si utilizza Exchange Server 2007, è necessario), quindi errata.

La modalità precedente

In genere, eseguire i comandi, fornendo i parametri ad essi a destra della riga di comando. Ad esempio:

Get-WmiObject –computername SERVER-R2 –class Win32_LogicalDisk –filter "DriveType=3" –credential "Administrator"

È ancora possibile farlo nella versione 2. 0 del serbatoio, ovviamente. Se non è soddisfacente tutti di digitazione, è possibile troncare i nomi dei parametri. Assicurarsi di fornire sufficienti di ogni nome di parametro in modo che la shell è in grado di determinare il parametro che si intendeva. È anche legale:

Get-WmiObject –comp SERVER-R2 –cla Win32_LogicalDisk –filt "DriveType=3" –cred "Administrator"

Non esistono parametri posizionali ancora, ovviamente. Consultare la Guida per Get-WmiObject, e si vedrà che è possibile utilizzare il parametro –class in prima posizione. Ciò significa che è nemmeno necessario fornire il nome del parametro, purché il valore va a finire nel punto giusto:

Get-WmiObject Win32_LogicalDisk –comp SERVER-R2 –filt "DriveType=3" –cred "Administrator"

Che combinano con la possibilità di utilizzare gli alias al posto dei nomi di cmdlet e si finisce con una riga di comando realmente illeggibile:

Gwmi Win32_LogicalDisk –comp SERVER-R2 –filt "DriveType=3" –cred "Administrator"

Nelle classi, stabilire miei studenti digitare desiderano quando si utilizza la shell. Dopo tutto, salvare manualmente digitando consente di risparmiare tempo. Che è la shell di tutte le informazioni su. Tuttavia, inoltre riferire devono copiare e incollare un comando in uno script. È opportuno utilizzare il nome completo del cmdlet e i nomi dei parametri completo. In questo modo rende più semplice da leggere lo script finale.

Alcuni editor di script esterno, come PrimalScript di SAPIEN e ricerca PowerGUI (con una liberazione plug-in), ancora possibile espandere i nomi di cmdlet o un parametro dalle versioni abbreviate su full. Consente di troncare i nomi con meno sforzo.

Il nuovo modo

Splatting è un modo tutto nuovo di passaggio di parametri a un comando. È innanzitutto necessario creare una tabella hash, denominato anche un dizionario o un array associativo. Una tabella hash è un insieme di chiavi = coppie valore. Una tabella hash di base contiene due chiavi, ognuno con un singolo valore. L'aspetto seguente in Windows PowerShell:

@{'key1'='value1';'key2'='value2'}

Il simbolo "@" Avvia hashtable, che è racchiuso tra parentesi graffe, ovvero quelle che è simile al seguente: {}. Ogni coppia chiave = valore è separato dagli altri da un punto e virgola. In splatting, le chiavi sono i nomi di parametro. I valori sono i valori che si desidera inviare a tali parametri. In uno script, è possibile utilizzare anche le interruzioni di riga all'interno della definizione di tabella hash per facilitare la lettura del blocco:

$parms = @{'class'='Win32_BIOS';
        'computername'='SERVER-R2';
           'filter'='drivetype=3';
   'credential'='Administrator'
          }

Per passare i parametri insieme al comando, è possibile utilizzare "@". In questo caso, tuttavia, funziona come un operatore di gocce. Potrebbe essere confuso una singola porzione di punteggiatura (il simbolo "@") può avere due diversi utilizzi, ma funziona:

Get-WmiObject @parms

Si noterà un piccolo trucco. Il simbolo "@" è seguito dal nome della variabile, non include il simbolo del dollaro. Probabilmente che vale la pena una breve spiegazione. Può essere un "problema" principale nella shell che molte persone di viaggi.

In Windows PowerShell, un nome di variabile è semplicemente una sequenza di lettere, numeri e caratteri di sottolineatura. Generalmente è possibile disporre di spazi e punteggiatura nel nome di una variabile, ma ha un aspetto fastidioso. Un segno di dollaro davanti al nome della variabile indica la shell che non si desidera gestire con la variabile stessa. Si desidera gestire con il suo contenuto. In questo caso $var = 5 è inserire il numero "5" all'interno della variabile denominata var.

Il simbolo "@", quando viene utilizzato come operatore di gocce esegue qualcosa di simile. Verrà visualizzato il numero, "prendere tutti i caratteri successive e si presuppone che siano un nome di variabile. Si supponga che la variabile contiene una tabella hash e che le chiavi sono i nomi di parametro. Espandere gli uscita e feed i valori dalla tabella hash per tali parametri. Che potrebbe sembrare una spiegazione tediose, ma questo è ciò che accade.

Questo motivo alcuni scelgono ritiene che, in particolare all'interno di uno script, questo:

$parms = @{'class'='Win32_BIOS';
        'computername'='SERVER-R2';
           'filter'='drivetype=3';
           'credential'='Administrator'
          }
Get-WmiObject @parms

Bello a questo:

Get-WmiObject –computername SERVER-R2 –class Win32_LogicalDisk –filter "DriveType=3" –credential "Administrator"

È indubbiamente una questione di preferenze personali. È facile vedere l'argomento per il metodo splatting. I parametri, i nomi e valori, elegantemente si trovano in un unico spot. Possibile formattare in modo che di riga in alto e cercare ordinate e ordinato ("chiaro e ordinato" è delle principali tematiche delle mie lezioni).

La volta successiva che durante l'inserimento di un comando in uno script, è opportuno tenere conto splatting. Se non altro, sembra davvero interessante.

Don Jones

Don Jones è un MVP WindowsPowerShell, autore e insegnante. È possibile contattarlo tramite il suo sito Web ConcentratedTech.com, che contiene anche informazioni sul suo aspetto di conferenza e le classi.

Approfondimento: Windows PowerShell in Video

Articolo di questo mese è dotato di un video di accompagnamento disponibile all'indirizzo Rivista extra - tecnologia concentrato. Sono inoltre disponibili ulteriori video di Windows PowerShell liberi a YouTube - canale del ConcentratedDon.

Ora è in esecuzione da registrare per Don Jones live, esclusivo, pratici workshop di tre giorni Windows PowerShell risiedere stesso sistema TechMentor molla 2011. L'indirizzo del sito di Crystal Reports è TechMentorEvents.com Per ulteriori informazioni.

Contenuto correlato