(nicht vollständig) ja.
|
und >
sind zwei verschiedene Dinge.
>
ist ein sogenannter Umleitungsoperator.
Ein Umleitungsoperator leitet die Ausgabe eines Streams in eine Datei oder einen anderen Stream um. Der Pipelineoperator leitet das Rückgabeobjekt eines Cmdlets oder einer Funktion an das nächste (oder das Ende der Pipeline). Während das Rohr das ganze Objekt mit seinen Eigenschaften pumpt, leitet das Umleitungsrohr nur seinen Ausgang. Wir können dies illustrieren mit einem einfachen Beispiel:
#Get the first process in the process list and pipe it to `Set-Content`
PS> (Get-Process)[0] | Set-Content D:\test.test
PS> Get-Content D:/test.test
Ausgänge
System.Diagnostics.Process (AdAppMgrSvc)
Ein Versuch, das Objekt in eine Zeichenfolge zu konvertieren.
#Do the same, but now redirect the (formatted) output to the file
PS> (Get-Process)[0] > D:\test.test
PS> Get-Content D:/test.test
Ausgänge
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
420 25 6200 7512 3536 0 AdAppMgrSvc
Ein drittes Beispiel die Fähigkeiten des Bedieners Rohr zeigen:
PS> (Get-Process)[0] | select * | Set-Content D:\test.test
PS> Get-Content D:/test.test
Dieser Wille Ausgang ein Hashtable mit allen Eigenschaften des Prozesses:
@{Name=AdAppMgrSvc; Id=3536; PriorityClass=; FileVersion=; HandleCount=420; WorkingSet=9519104; PagedMemorySize=6045696; PrivateMemorySize=6045696; VirtualMemorySize=110989312; TotalProcessorTime=; SI=0; Handles=420; VM=110989312; WS=9519104; PM=6045696; NPM=25128; Path=; Company=; CPU=; ProductVersion=; Description=; Product=; __NounName=Process; BasePriority=8; ExitCode=; HasExited=; ExitTime=; Handle=; SafeHandle=; MachineName=.; MainWindowHandle=0; MainWindowTitle=; MainModule=; MaxWorkingSet=; MinWorkingSet=; Modules=; NonpagedSystemMemorySize=25128; NonpagedSystemMemorySize64=25128; PagedMemorySize64=6045696; PagedSystemMemorySize=236160; PagedSystemMemorySize64=236160; PeakPagedMemorySize=7028736; PeakPagedMemorySize64=7028736; PeakWorkingSet=19673088; PeakWorkingSet64=19673088; PeakVirtualMemorySize=135786496; PeakVirtualMemorySize64=135786496; PriorityBoostEnabled=; PrivateMemorySize64=6045696; PrivilegedProcessorTime=; ProcessName=AdAppMgrSvc; ProcessorAffinity=; Responding=True; SessionId=0; StartInfo=System.Diagnostics.ProcessStartInfo; StartTime=; SynchronizingObject=; Threads=System.Diagnostics.ProcessThreadCollection; UserProcessorTime=; VirtualMemorySize64=110989312; EnableRaisingEvents=False; StandardInput=; StandardOutput=; StandardError=; WorkingSet64=9519104; Site=; Container=}
Der Umleitungsoperator '>' auch die Ausgabe in eine Zeichenfolge konvertiert, während das Rohr '|' hält die Objekte wie –