PowerShell管道中%运算符的用法咨询及相关文档查询
关于PowerShell中
%运算符的用法说明 嘿,这个问题我太熟悉了!你看到的%根本不是什么特殊运算符,它其实是PowerShell里ForEach-Object cmdlet的内置别名——就是为了少敲几个字的快捷写法,功能和完整调用ForEach-Object完全一致。
先给你拆解下你贴的示例:
Get-ChildItem -Path $env:windir | % { Write-Host $_.FullName }
这段代码和下面的写法是完全等价的:
Get-ChildItem -Path $env:windir | ForEach-Object { Write-Host $_.FullName }
%的作用就是接收管道传过来的每一个对象(这里是Get-ChildItem返回的系统目录里的文件/文件夹),然后执行花括号里的脚本块,$_代表当前正在处理的那个对象。
至于文档出处,有两个最直接的方式:
- 直接在PowerShell终端里敲
Get-Alias -Name %,回车后就能看到它明确指向ForEach-Object,这是最快速的验证方法。 - 输入
Get-Help ForEach-Object -Full查看本地完整帮助文档,里面会专门列出它的所有别名(包括%和foreach),还有详细的用法示例、参数说明,比网上找文档还方便。
顺便提一句,PowerShell里很多常用cmdlet都有这类别名,比如dir是Get-ChildItem的别名,cd是Set-Location的别名,都是为了让习惯不同shell的用户能快速上手。
内容的提问来源于stack exchange,提问作者Frederic Mokren
相关产品推荐
相关产品推荐

