PowerShell:Get-ChildItem FullName输出到Get-FileHash路径

jxct1oxe  于 2023-11-18  发布在  Shell
关注(0)|答案(2)|浏览(149)

对于PowerShell来说,我尝试创建一个命令来执行以下操作:

  • 搜索特定文件的整个目录
  • 使用Get-ChildItem中的文件路径作为Get-FileHash“-Path”的变量
  • 列出文件的FullName、Attributes、LastWriteTime、CreationTime、LastWriteTime、$Hash($Hash = Get-FileHash的输出)
    到目前为止我已经创建了(这不起作用):
$ErrorActionPreference = "SilentlyContinue"; $Path = Get-ChildItem -Recurse -Path C:\ -Force -Filter screenshot_37.png | Select-Object FullName; Get-ChildItem -Recurse -Path C:\ -Force -Filter screenshot_37.png |Select-Object FullName, Attributes, LastWriteTime, CreationTime, LastAccessTime, @{Name='Hash';Expression = { $_ |Get-FileHash $Path -Alogorithm MD5 |ForEach-Object Hash }}

字符串
按原样工作:

$ErrorActionPreference = "SilentlyContinue"; Get-ChildItem -Recurse -Path C:\ -Force -Filter screenshot_37.png |Select-Object FullName, Attributes, LastWriteTime, CreationTime, LastAccessTime, @{Name='Hash';Expression = { $_ |Get-FileHash -Alogorithm MD5 |ForEach-Object Hash }}

  • 返回:*

FullName:C:\Users\ME\Downloads\Screenshot_37.png
属性:隐藏,存档
Last WriteTime:10/24/2023 9:32:34 AM
创建时间:2023/10/24 9:32:34 AM
发布时间:2023年10月26日10:37:31 AM
哈希:

有人能帮助我理解并创建一个工作命令吗?

($ErrorPane Preference =“SilentlyContinue”存在B/c用户没有管理员权限,因此搜索C:\驱动器会产生大量访问被拒绝的错误)

qmelpv7a

qmelpv7a1#

不需要调用Get-ChildItem两次-相反,将Get-FileHash的输出附加到原始文件项:

Get-ChildItem -Recurse -Path C:\ -Force -Filter screenshot_37.png |Select-Object FullName, Attributes, LastWriteTime, CreationTime, LastAccessTime, @{Name='Hash';Expression = { $_ |Get-FileHash -Algorithm MD5 |ForEach-Object Hash }}

字符串
传递给Select-Object@{Name='Hash';Expression = { $_ |Get-FileHash -Algorithm MD5 |ForEach-Object Hash }})的最后一个参数是一个 * 计算属性表 *,它允许您基于现有的输入对象合成新的属性。
您可以在the about_Calculated_Properties help topic中阅读更多有关计算属性的信息

axr492tv

axr492tv2#

$ErrorActionPreference = "SilentlyContinue"
Get-ChildItem -Recurse -Path C:\ -Force -Filter screenshot_37.png |
Select-Object FullName, Attributes, LastWriteTime, CreationTime, LastAccessTime, 
@{
    Name       = 'Hash';
    Expression = { Get-FileHash -LiteralPath $_.FullName -Algorithm MD5 | ForEach-Object Hash }
}

字符串

相关问题