Как выполнить поиск и сообщить на сетевом диске, чтобы указать, является ли его файл или папка

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

$Directory  = "X:\Sub\General"
Get-ChildItem -Path $Directory -Recurse -Force | ForEach {[PSCustomObject]@{
FullPath = $_.FullName  
FileName = $_.Name
Size = $_.Length
Extension = $_.Extension
Creation = $_.CreationTime
LastWriteTime = $_.LastWriteTime
}
} | Export-Csv -Path "C:\users\abc\Downloads\fulllist.csv"

Спасибо

Мои знания сценариев PS очень ограничены, поэтому я не знаю, как внести поправки в код.

В качестве альтернативы полезному решению Энтони рассмотрите возможность использования Select-String с вычисляемым свойством.

mklement0 23.08.2024 12:36
Стоит ли изучать 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 называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете использовать PSIsContainer, измененный скрипт приведен ниже. В сгенерированном файле CSV появится новый столбец «Папка», который будет содержать значение «Истина», если это папка, в противном случае — «Ложь».

$Directory  = "X:\Sub\General"
Get-ChildItem -Path $Directory -Recurse -Force | ForEach {[PSCustomObject]@{
FullPath = $_.FullName  
FileName = $_.Name
Size = $_.Length
Extension = $_.Extension
Creation = $_.CreationTime
LastWriteTime = $_.LastWriteTime
IsFolder = $_.PSIsContainer
}
} | Export-Csv -Path "C:\users\abc\Downloads\fulllist.csv"

результирующий список в формате CSV

Спасибо @Iit обновил скрипт.

Директиву \\?\ можно использовать для чтения более длинных путей в PS

Обновлен скрипт для обработки длинных путей.

$Directory = "\\?\X:\Sub\General"  
    [PSCustomObject]@{
        FullPath = $_.FullName
        FileName = $_.Name
        Size = $_.Length
        Extension = $_.Extension
        Creation = $_.CreationTime
        LastWriteTime = $_.LastWriteTime
        IsFolder = $_.PSIsContainer
    }
} | Export-Csv -Path "C:\users\abc\Downloads\fulllist.csv" 

Привет всем, у меня возникла новая проблема, из-за которой я получаю сообщение об ошибке «Не удалось найти часть пути». Я погуглил и обнаружил, что ошибка возникает, если длина пути превышает 256 символов. Не могли бы вы помочь включить все, независимо от длины символов. Спасибо

Dinesh Padmanabhan 28.08.2024 01:50

@DineshPadmanabhan обновил скрипт для обработки более длинных путей. пожалуйста, попробуйте. Спасибо.

Anthony S 28.08.2024 13:30

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