首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么"Get-ChildItem \ Get-FileHash“起作用?

为什么"Get-ChildItem \ Get-FileHash“起作用?
EN

Stack Overflow用户
提问于 2020-02-11 20:18:19
回答 2查看 609关注 0票数 8

与Powershell相比,我更熟悉Bash,有时我对后者的对象模型感到困惑。

看一下Get-FileHash文档,似乎有三种方法来指定输入:

  • Get-FileHash -Path
  • Get-FileHash -LiteralPath
  • Get-FileHash -InputStream

前两个是文件名,第三个是数据流。

现在,Get-ChildItem -File似乎输出了System.IO.FileInfo对象,从Get-Member所说的判断:

代码语言:javascript
运行
复制
$ Get-ChildItem -File | Get-Member
TypeName: System.IO.FileInfo

然而,流水线Get-ChildItem -File | Get-FileHash工作正常。我的问题是,允许将System.IO.FileInfo转换为Get-FileHash期望的输入类型的机制是什么?

EN

回答 2

Stack Overflow用户

发布于 2020-02-11 22:01:31

从有关函数高级参数文档,论证部分

ValueFromPipelineByPropertyName参数指示该参数接受来自管道对象属性的输入。object属性必须具有与参数相同的名称或别名。 例如,如果函数具有ComputerName参数,管道对象具有ComputerName属性,则将ComputerName属性值分配给函数的ComputerName参数。

更新:最初链接错误的源代码文件。正确的源代码在这里。作为@mclement0Get-ChildItem cmdlet输出一个具有PSPath属性的对象,这使其工作。

票数 3
EN

Stack Overflow用户

发布于 2020-02-11 21:44:59

看起来它使用了pspath属性。

代码语言:javascript
运行
复制
dir there | select pspath | get-filehash

Algorithm  Hash                                                                Path
---------  ----                                                                ----
SHA256     44723DD4D0E0D46A3C7FA8ACA254B61C27B6B5789F96177E82C80700409F1535    C:\users\...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60176733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档