В PowerShell, то Get-ChildItem
Командлет работает как ls
(по крайней мере с поставщиком файловой системы). Все возвращенные детали имеют свойство PowerShell конкретного названия PSIsContainer
, указывающее, является ли он каталогом или нет:
foreach($item in (Get-ChildItem)){
if($item.PSIsContainer){
"Directory"
} else {
"File"
}
}
Если вы хотите увидеть, что внутри каждый каталога, один уровень вниз:
foreach($item in (Get-ChildItem)){
if($item.PSIsContainer){
# Directory! Let's see what's inside:
Get-ChildItem -Path $item.FullName
}
}
Начиная с версии PowerShell версии 3.0 и выше, Get-ChildItem
поддерживает переключатель File
и Directory
поставщика файловой системы, поэтому, если вы ТОЛЬКО хотите каталоги, вы можете сделать:
Get-ChildItem -Directory
Так второй пример становится:
Get-ChildItem -Directory | Get-ChildItem
Вы также можете просмотреть список файлов рекурсивно (как ls -R
):
Get-ChildItem -Recurse
Спасибо человек !!. И если я хотел бы напечатать то, что связывает каталог $ item? Я должен сделать еще один foreach? – user3671361
@ user3671361 Обновленный ответ –