对于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:\驱动器会产生大量访问被拒绝的错误)
2条答案
按热度按时间qmelpv7a1#
不需要调用
Get-ChildItem
两次-相反,将Get-FileHash
的输出附加到原始文件项:字符串
传递给
Select-Object
(@{Name='Hash';Expression = { $_ |Get-FileHash -Algorithm MD5 |ForEach-Object Hash }}
)的最后一个参数是一个 * 计算属性表 *,它允许您基于现有的输入对象合成新的属性。您可以在the
about_Calculated_Properties
help topic中阅读更多有关计算属性的信息axr492tv2#
字符串