как совместить вывод Get-ChildItem и Get-FileHash? Powershell
Я хочу получить таблицу типа name-algorithm-hash для файлов, заканчивающуюся.gz в папке
а фильтрация работает хорошо:powershell -command " Get-ChildItem -Filter 'L04\*.gz' | Select Name"
дать таблицу:
Name
v300040828_run20_L04_62_1.fq.gz
v300040828_run20_L04_62_2.fq.gz
Но команда upgreid с хешем powershell -command " Get-ChildItem -Filter 'L04\*.gz' | ls | Get-FileHash -Algorithm MD5| Select Name,Algorithm,Hash"
дай мне только алгоритм и хеш без имени..
Name Algorithm Hash
MD5 08B622CFAB1254DE77DEE2B86B8566C5
MD5 BB0ACF3AE1F9E67BAF8F64736221D401
Помогите мне получить также имя
2 ответа
Решение
Get-FileHash возвращает объект со свойствами Path
, Algorithm
а также Hash
.
Путь - это полное имя файла.
Если вы хотите, чтобы это изменилось, вы можете сделать
Select-Object @{Name = 'Name'; Expression = {[System.IO.Path]::GetFileName($_.Path)}}, Algorithm, Hash
$GCIArgs = @{Path = "G:\BEKDocs\Scripts\DiskSpaceGUI"
Filter = '*.ps1'}
Get-ChildItem @GCIArgs |
Get-FileHash -Algorithm MD5|
Select-Object Algorithm,Hash,@{
n="Name";e={($_.Path).Split("\")[-1]}}
Полученные результаты:
Algorithm Hash Name
--------- ---- ----
MD5 FDD38964CA6EC73C01FB5097E8EFFE9E DiskSpaceGUI-V1-0.ps1
MD5 2991850091CA66634BC9287E00FB086C DiskSpaceGUI-V2-0.1.ps1
MD5 2991850091CA66634BC9287E00FB086C DiskSpaceGUI-V2-0.ps1
MD5 A9ECA8BF38D57D953E51C11D3F881A4F DiskSpaceGUI-V2-1.ps1
MD5 E265F9DCCC1BE106C71789F6040DBAEB DiskSpaceGUI-V2-3.ps1
MD5 FB287373331EB4716FAF0CFC99FF2390 DiskSpaceGUI-V2-4.ps1
MD5 B370CD26B814B63A5779CB4BD1630E9F DiskSpaceGUI.ps1
HTH