gpt4 book ai didi

Powershell:之间的差异|和 >?

转载 作者:行者123 更新时间:2023-12-02 08:14:01 24 4
gpt4 key购买 nike

在 PowerShell 中,|> 有什么区别?

dir | CLIP #move data to clipboard
dir > CLIP #not moving, creating file CLIP (no extension)

我是否可以假设 | 将当前结果移动到管道中的下一个 block 并且 > 将数据保存到文件中?

还有其他区别吗?

最佳答案

(不完全)是的。

|> 是两个不同的东西。

> 是所谓的重定向运算符。

重定向运算符将流的输出重定向到文件或另一个流。管道运算符将 cmdlet 或函数的返回对象通过管道传递到下一个(或管道的末尾)。管道通过其属性泵送整个对象,而重定向仅通过其输出进行管道传输。我们可以用一个简单的例子来说明这一点:

#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

输出

System.Diagnostics.Process (AdAppMgrSvc)

尝试将对象转换为字符串。


#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

输出

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
420 25 6200 7512 3536 0 AdAppMgrSvc

第三个例子将展示管道运算符的能力:

PS> (Get-Process)[0] | select * | Set-Content D:\test.test
PS> Get-Content D:/test.test

这将输出一个包含所有进程属性的哈希表:

@{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=}

关于Powershell:之间的差异|和 >?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43628341/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com