Экспорт CSV записывает результаты в одну строку, как получить несколько строк?

Я ищу дубликаты на общем диске, чтобы я мог сообщить пользователям, и они могли очистить его, прежде чем мы будем использовать что-либо автоматизированное. Мой самый большой дубликат почти 400 копий, но вся информация находится в одной строке.

Мой запрос дает правильные результаты:

$a = Get-ChildItem -Path "S:\" -File -Recurse | 
     Select-Object -Property Fullname, @{N='Hash';E = {(Get-FileHash $_.FullName).Hash}}

$cnt = $a | Group-Object -Property Hash

$cnt |
    Select-Object Count, @{N='FullName';E = {($_.Group).FullName}}, @{N='Hash';E = {($_.Group).Hash}} |
    Sort-Object -Property Count -Descending |
    Export-Csv C:\Temp\S_Drive_Counts.csv

Вот пример моих результатов, где каждая запись находится в одной строке:

"Count","FullName","Hash"
"2","S:\Generation 1\Certification Authority.txt S:\Generation 2\Certification Authority.txt","498868376A5377F731593E9F96EC99F34C69F47537C81B9B32DBAC9321462B83 498868376A5377F731593E9F96EC99F34C69F47537C81B9B32DBAC9321462B83"

Однако мне нужно передать эту информацию, поэтому я бы хотел, чтобы каждая запись была в отдельной строке, например:

"Count","FullName","Hash"
"2","S:\Generation 1\Certification Authority.txt","498868376A5377F731593E9F96EC99F34C69F47537C81B9B32DBAC9321462B83"
"2","S:\Generation 2\Certification Authority.txt","498868376A5377F731593E9F96EC99F34C69F47537C81B9B32DBAC9321462B83"

При необходимости я могу выполнить некоторые манипуляции со строками в CSV, но я ищу способ получить его в правильном формате перед экспортом в CSV.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Разверните свои группы. Кроме того, лучше используйте конвейер.

Get-ChildItem -Path 'S:\' -File -Recurse | 
    Select-Object Fullname, @{n='Hash';e = {(Get-FileHash $_.FullName).Hash}} |
    Group-Object Hash |
    ForEach-Object {
        $cnt = $_.Count
        $_.Group | Select-Object @{n='Count';e = {$cnt}}, FullName, Hash
    } | 
    Sort-Object Count, Hash, FullName -Descending |
    Export-Csv 'C:\Temp\S_Drive_Counts.csv' -NoType

Это правильное замечание по поводу групп, но в данном случае это удобный способ пройти каждый шаг без необходимости повторного сканирования диска. Спасибо!

DBADon 29.05.2019 19:33

Другие вопросы по теме