Windows PowerShell: Un'ampia scelta di output

Con Windows PowerShell è possibile generare output in un'ampia varietà di modi. Eccone alcuni sviluppati di recente.

Don Jones

Windows PowerShell è uno di questi prodotti preciso in cui sono costantemente scoprire nuove funzionalità e caratteristiche. Generazione di output, ovvero informazioni sullo schermo o in un altro formato, è un'area in cui Windows PowerShell illustra la notevole profondità e la versatilità.

Aprire una copia di Windows PowerShell (preferibilmente v2, disponibile come download per versioni di Windows a Windows XP) ed eseguire Gcm –verb out. Verrà visualizzato un elenco di tutti i cmdlet progettato per creare output in vari formati.

Come risultato di output

Come tutto, i vari cmdlet di uscita sono progettati per utilizzare gli oggetti. Ciò significa che si visualizza l'output sullo schermo, denominata finestra host, eseguendo un comando simile al seguente:

Get-Process | Out-Host

In realtà, la parte Out-Host che è inutile, poiché Windows PowerShell è la Out-Default cmdlet hardcoded alla fine della pipeline. Questo cmdlet inoltra semplicemente le cose per Out-Host. Pertanto, questo comando:

Get-Process

Corrisponde a livello funzionale:

Get-Process | Out-Default

Out-Default saranno oggetti internamente diretta a Out-Host. L'aspetto interessante tutti i out-cmdlet è che sono effettivamente Impossibile elaborare oggetti “ reali ”. I cmdlet in uscita possono gestire solo un tipo speciale di oggetto di formattazione prodotta dal sottosistema di formattazione della shell.

Quando un cmdlet out riceve oggetti “ normali ”, internamente chiama uno dei cmdlet di formato basato su una serie di regole interne e le impostazioni di configurazione predefinite. Il cmdlet formato produce oggetti di formattazione che descrivono come creare output e il cmdlet out inserisce l'output nella periferica specificata. Pertanto, esegue questa:

Get-Process

È davvero molto simile a questa esecuzione:

Get-Process | Format-Table | Out-Host

La lezione qui è che i cmdlet in uscita possono utilizzare solo ciò che è stato prodotto da un cmdlet di formato. Per la maggior parte, solo un cmdlet in uscita è in grado di gestire i cmdlet formato producono. Un cmdlet formato sarà sempre l'ultima cosa sulla riga di comando, con l'unica eccezione di quando è seguito da un cmdlet in uscita.

In uscita: Fine della linea

Poiché il cmdlet out devono per affrontare il risultato finale di qualsiasi comando che hai eseguito, essi stessi (con un'eccezione) non produce alcun output. Se si utilizza un cmdlet out, sarà sempre molto l'ultimo elemento della riga di comando. Dopo l'esecuzione del cmdlet in uscita, non vi sarà nulla nella pipeline per agire sugli altri cmdlet.

L'unica eccezione a questa regola, almeno con l'uscita-cmdlet incorporati, è Out-String. Funziona molto diverso rispetto a quello dei cmdlet uscita normali. Colloca gli oggetti String alla pipeline. Questo cmdlet e le eccezioni non sono lo stato attivo, ma tenere presente che esiste. Se si desidera ottenere ulteriori informazioni, eseguire Help Out-String.

Attendere, ha ad esempio “ out-cmdlet incorporati? ” In realtà, e implica che non vi siano altri cmdlet out è assolutamente vero. Ad esempio, vi è un terzo commercio aggiuntivo denominato PowerGadgets. Aggiunge divertente cmdlet come Out-Chart e Out-Gauge repertorio della shell di. Aggiuntivo out-cmdlet potrebbe non presentano tutti lo stesso comportamento qui descritte e regole, assicurarsi di leggere le pagine della Guida (se disponibile) per comprendere meglio il funzionamento e operazioni.

Opzioni di uscita

Windows PowerShell sono disponibili numerose opzioni di output predefinito:

  • Out-Host è l'impostazione predefinita se non si specifica qualsiasi altro
  • Out-Printer invia un output a una stampante. L'output viene formattato mediante il cmdlet formato utilizzato o le impostazioni predefinite nel sottosistema di formattazione
  • Out-File invia output in un file. Questo è funzionalmente equivalente alla esegue qualcosa di simile a Dir >file.txt. Il >e >>utilizzano collegamenti effettivamente Out-File sotto le quinte. Out-File ha tonnellate di opzioni per impostare la larghezza del file di output (quali influiscono le decisioni prese dalla shell di formattazione), codifica, Accodamento o la sovrascrittura dei caratteri e così via
  • Fuori griglia è nuova in Windows PowerShell v2 e richiede Microsoft .NET Framework 3.5 SP1 per funzionare correttamente. Gli oggetti verranno visualizzati in una tabella con intestazioni di colonna fare clic su ordinamento grafica e una finestra di filtro di ricerca per individuare i risultati specifici

Leggere la Guida per i cmdlet può essere estremamente educativi. Ad esempio, è sufficiente Out-Host include un parametro –paging che ne determina una pagina dell'output di visualizzare contemporaneamente? Questo è simile al comando “ ulteriori ” nella shell cmd.exe precedente. Provare a eseguire questo:

Get-Service | Out-Host –paging

Il parametro –width Out-File è utile per la creazione di tabelle eccezionalmente grande. Ho generate tabelle di grandi dimensioni e stampare i file risultanti in un plotter per creare una visualizzazione utile, montato a parete. La larghezza predefinita è solo 80 colonne che non consentono di tabelle molto ampia. Per impostazione predefinita, la shell solo visualizzerà qualcosa come una tabella se contiene un massimo di quattro colonne o una configurazione predefinita fornisce un layout di tabella personalizzati:

Get-WmiObject Win32_Service | Format-Table * | 
Out-File c:\services.txt –width 750

Out-Printer fornisce un parametro –name è possibile specificare la stampante desiderata. Utilizzerà la stampante predefinita di Windows se non si specifica un altro.

Infine, fuori griglia consente inoltre di specificare un titolo per la finestra di visualizzazione utilizzando il parametro –title del cmdlet. Che risulta utile quando uno script viene visualizzata una griglia per un utente, perché un buon titolo può consentono di comprendere cosa è visualizzato.

Quando non è output

Infine, non vi è Out-Null. Questo cmdlet consente di “ mangiare ” output che non desiderato. La maggior parte dei metodi WMI, ad esempio, restituiscono un oggetto che indica la riuscita o meno. Se non si desidera visualizzare l'output, semplicemente pipe, per Out-Null:

Invoke-WmiMethod –name reboot –class win32_operatingsystem | 
Out-Null

Non solo è in esecuzione con il divertimento Opzioni output diversi, fornisce un'idea migliore è possibile eseguire Windows PowerShell. È necessario realizzare l'effettiva entità a cui è possibile lavorare in modo più semplice e meno funzionano sul proprio.

Don Jones

Don Jones è un fondatore di tecnologia incentrati e risposte alle domande su Windows PowerShell e altre tecnologie di ConcentratedTech.com. È anche autore di Nexus.Realtimepublishers.com, molti dei suoi libri rende disponibile come libere edizioni elettroniche tramite il suo sito web.

Contenuto correlato