Gegevens met Out - omleiden * CmdletsRedirecting Data with Out-* Cmdlets

Windows PowerShell biedt diverse cmdlets waarmee die u gegevens uitvoer rechtstreeks beheren.Windows PowerShell provides several cmdlets that let you control data output directly. Deze cmdlets kunt u twee belangrijke kenmerken delen.These cmdlets share two important characteristics.

Eerst transformeren ze doorgaans gegevens naar een vorm van tekst.First, they generally transform data to some form of text. Dit wordt gedaan omdat ze de gegevens naar de onderdelen van het systeem waarvoor tekstinvoer uitvoer.They do this because they output the data to system components that require text input. Dit betekent dat ze nodig hebben om weer te geven van de objecten als tekst.This means they need to represent the objects as text. De tekst is daarom opgemaakt als u deze in het venster Windows PowerShell-console bekijken.Therefore, the text is formatted as you see it in the Windows PowerShell console window.

Deze cmdlets gebruik vervolgens de Windows PowerShell-opdracht uit omdat ze gegevens uit vanuit Windows PowerShell op een andere locatie verzonden.Second, these cmdlets use the Windows PowerShell verb Out because they send information out from Windows PowerShell to somewhere else. De uitgaande Host cmdlet vormt daarop geen uitzondering: de weergave in de host bevindt zich buiten het Windows PowerShell.The Out-Host cmdlet is no exception: the host window display is outside of Windows PowerShell. Dit is belangrijk omdat wanneer gegevens worden verzonden buiten Windows PowerShell, wordt dit daadwerkelijk verwijderd.This is important because when data is sent out of Windows PowerShell, it is actually removed. U kunt dit zien als u probeert te maken van een pijplijn die pagina's gegevens naar het hostvenster en vervolgens probeert te formatteren als een lijst als volgt te werk:You can see this if you try to create a pipeline that pages data to the host window, and then attempt to format it as a list, as shown here:

Get-Process | Out-Host -Paging | Format-List

U kunt de opdracht uit om de pagina's van de procesinformatie weergeven in lijstindeling zou verwachten.You might expect the command to display pages of process information in list format. In plaats daarvan wordt de standaardlijst in tabelvorm weergegeven:Instead, it displays the default tabular list:

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    101       5     1076       3316    32     0.05   2888 alg
...
    618      18    39348      51108   143   211.20    740 explorer
    257       8     9752      16828    79     3.02   2560 explorer
...
<SPACE> next page; <CR> next line; Q quit
...

De uitgaande Host cmdlet verzendt de gegevens rechtstreeks naar de console, zodat de lijst indelen opdracht ontvangt nooit iets te formatteren.The Out-Host cmdlet sends the data directly to the console, so the Format-List command never receives anything to format.

De juiste manier structuur van deze opdracht is te plaatsen de uitgaande Host cmdlet aan het einde van de pijplijn zoals hieronder wordt weergegeven.The correct way to structure this command is to put the Out-Host cmdlet at the end of the pipeline as shown below. Dit zorgt ervoor dat de gegevens over het installatieproces worden ingedeeld in een lijst voordat wordt wisselbaar en weergegeven.This causes the process data to be formatted in a list before being paged and displayed.

PS> Get-Process | Format-List | Out-Host -Paging

Id      : 2888
Handles : 101
CPU     : 0.046875
Name    : alg
...

Id      : 740
Handles : 612
CPU     : 211.703125
Name    : explorer

Id      : 2560
Handles : 257
CPU     : 3.015625
Name    : explorer
...
<SPACE> next page; <CR> next line; Q quit
...

Dit geldt voor alle van de uit cmdlets.This applies to all of the Out cmdlets. Een uit cmdlet moet altijd worden weergegeven aan het einde van de pijplijn.An Out cmdlet should always appear at the end of the pipeline.

Notitie

Alle de uit cmdlets uitvoer weergegeven als tekst met de opmaak van kracht voor het consolevenster, met inbegrip van lengtebeperkingen regel.All the Out cmdlets render output as text, using the formatting in effect for the console window, including line length limits.

Console-uitvoer van het wisselbestand (uitgaande Host)Paging Console Output (Out-Host)

Standaard Windows PowerShell gegevens verzendt naar het hostvenster precies wat is de uitgaande hosten cmdlet heeft.By default, Windows PowerShell sends data to the host window, which is exactly what the Out-Host cmdlet does. Het primaire gebruik voor de uitgaande hosten cmdlet is paginering gegevens, zoals eerder is besproken.The primary use for the Out-Host cmdlet is paging data as we discussed earlier. Bijvoorbeeld de volgende opdracht gebruikt uitgaande als host optreden voor de uitvoer van de cmdlet Get-Command pagina:For example, the following command uses Out-Host to page the output of the Get-Command cmdlet:

Get-Command | Out-Host -Paging

U kunt ook de meer functioneren op de paginagegevens.You can also use the more function to page data. In Windows PowerShell meer is een functie die aanroept uitgaande Host-Paging.In Windows PowerShell, more is a function that calls Out-Host -Paging. De volgende opdracht wordt gedemonstreerd met behulp van de meer functioneren op de pagina van de uitvoer van Get-opdracht:The following command demonstrates using the more function to page the output of Get-Command:

Get-Command | more

Als u een of meer bestandsnamen als argumenten voor de functie meer opneemt, wordt de functie de opgegeven bestanden lezen en wordt de inhoud naar de host pagina:If you include one or more filenames as arguments to the more function, the function will read the specified files and page their contents to the host:

PS> more c:\boot.ini
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
...

Een van de uitvoer (uitgaande Null)Discarding Output (Out-Null)

De uitgaande Null cmdlet is ontworpen om onmiddellijk negeren invoer ontvangen.The Out-Null cmdlet is designed to immediately discard any input it receives. Dit is handig voor het negeren van onnodige gegevens die u als gevolg krijgt van een opdracht uit te voeren.This is useful for discarding unnecessary data that you get as a side-effect of running a command. Wanneer Typ de volgende opdracht, er iets terug van de opdracht:When type the following command, you do not get anything back from the command:

Get-Command | Out-Null

De uitgaande Null cmdlet heeft geen foutuitvoer negeren.The Out-Null cmdlet does not discard error output. Bijvoorbeeld, als u de volgende opdracht invoert, een bericht weergegeven waarin wordt gemeld dat Windows PowerShell 'Is NotACommand' wordt niet herkend:For example, if you enter the following command, a message is displayed informing you that Windows PowerShell does not recognize 'Is-NotACommand':

PS> Get-Command Is-NotACommand | Out-Null
Get-Command : 'Is-NotACommand' is not recognized as a cmdlet, function, operabl
e program, or script file.
At line:1 char:12
+ Get-Command  <<<< Is-NotACommand | Out-Null

Gegevens voor afdrukken (Out-Printer)Printing Data (Out-Printer)

U kunt gegevens afdrukken met behulp van de Out-Printer cmdlet.You can print data by using the Out-Printer cmdlet. De Out-Printer cmdlet standaardprinter wordt gebruikt als u de naam van een printer niet opgeeft.The Out-Printer cmdlet will use your default printer if you do not provide a printer name. U kunt een printer op basis van Windows gebruiken door op te geven van de weergavenaam.You can use any Windows-based printer by specifying its display name. Er is niet nodig voor elk soort printer poorttoewijzing of zelfs een echte fysieke printer.There is no need for any kind of printer port mapping or even a real physical printer. Bijvoorbeeld, als u de Microsoft Office-document replicatiehulpprogramma's geïnstalleerd hebt, kunt u de gegevens verzenden naar een afbeeldingbestand door te typen:For example, if you have the Microsoft Office document imaging tools installed, you can send the data to an image file by typing:

Get-Command Get-Command | Out-Printer -Name 'Microsoft Office Document Image Writer'

Opslaan van gegevens (out-File)Saving Data (Out-File)

U kunt uitvoer naar een bestand in plaats van het consolevenster verzenden met behulp van de out-File cmdlet.You can send output to a file instead of the console window by using the Out-File cmdlet. De volgende opdrachtregel zendt een lijst van processen naar het bestand C:\temp\processlist.txt:The following command line sends a list of processes to the file C:\temp\processlist.txt:

Get-Process | Out-File -FilePath C:\temp\processlist.txt

De resultaten van het gebruik van de out-File cmdlet is wat u verwacht als u worden gebruikt voor traditionele uitvoeromleiding niet mogelijk.The results of using the Out-File cmdlet may not be what you expect if you are used to traditional output redirection. Om het gedrag te begrijpen, moet u rekening houden met de context waarin de out-File cmdlet werkt.To understand its behavior, you must be aware of the context in which the Out-File cmdlet operates.

Standaard de out-File cmdlet maakt een Unicode-bestand.By default, the Out-File cmdlet creates a Unicode file. Dit is de aanbevolen standaardwaarde op de lange termijn, maar het betekent dat hulpprogramma's die ASCII-bestanden verwacht niet correct met de indeling van de standaard-uitvoer werken wordt.This is the best default in the long run, but it means that tools that expect ASCII files will not work correctly with the default output format. U kunt de standaardindeling van uitvoer in ASCII wijzigen met behulp van de codering parameter:You can change the default output format to ASCII by using the Encoding parameter:

Get-Process | Out-File -FilePath C:\temp\processlist.txt -Encoding ASCII

Out-File indelingen bestand inhoud eruitzien zoals bij console-uitvoer.Out-file formats file contents to look like console output. Dit zorgt ervoor dat de uitvoer moet net als in een consolevenster in de meeste gevallen worden afgekapt.This causes the output to be truncated just as it is in a console window in most circumstances. Bijvoorbeeld, als u de volgende opdracht uitvoeren:For example, if you run the following command:

Get-Command | Out-File -FilePath c:\temp\output.txt

De uitvoer ziet er als volgt:The output will look like this:

CommandType     Name                            Definition
-----------     ----                            ----------
Cmdlet          Add-Content                     Add-Content [-Path] <String[...
Cmdlet          Add-History                     Add-History [[-InputObject] ...
...

Als u uitvoer die u hoeft niet regel terugloopt overeenkomen met de schermbreedte, kunt u de breedte lijnbreedte van de parameter.To get output that does not force line wraps to match the screen width, you can use the Width parameter to specify line width. Omdat breedte een 32-bits geheel getal-parameter is de maximale waarde kan hebben is 2147483647.Because Width is a 32-bit integer parameter, the maximum value it can have is 2147483647. Typ het volgende om in te stellen van de breedte van de aan deze maximumwaarde:Type the following to set the line width to this maximum value:

Get-Command | Out-File -FilePath c:\temp\output.txt -Width 2147483647

De out-File cmdlet is handig wanneer u opslaan uitvoer wilt zoals deze zou hebben weergegeven op de console.The Out-File cmdlet is most useful when you want to save output as it would have displayed on the console. Voor een betere controle over de indeling van uitvoer moet u meer geavanceerde hulpprogramma's.For finer control over output format, you need more advanced tools. Laten we zien die in het volgende hoofdstuk, samen met een aantal details van het object bewerken.We will look at those in the next chapter, along with some details about object manipulation.