Я хотел бы получить все (и только) имена файлов второго уровня моего диска. Например, C:\folder1\folder2
и C:\folder1\folder3
, мне нужно получить только folder2
и folder3
.Верните только имена каталогов второго уровня
Я пишу это и PS отображает все имена каталогов:
Get-ChildItem -Recurse | ?{ $_.PSIsContainer} | Select-Object Name
Я нашел это help, и я могу изменить предыдущую команду таким образом:
Get-ChildItem -Recurse | `Where-Object {($_.directory -match '^*\\\S*$')} ` | ForEach-Object {?{ $_.PSIsContainer} | Select-Object Name }
, но когда я использую его PS ничего не отображает.
Я не могу понять, почему кто-то может мне помочь? Спасибо!
Здравствуйте! Я пытался с '-Directory', и он работает. Спасибо за помощь! На самом деле, я также попытался использовать 'ForEach-Object {? {$ _. PSIsContainer} | Select-Object Name' после инструкции '-Directory', и она работает. Очевидно, что 'Select Name' лучше. Но ... просто чтобы вы знали. Спасибо! – Hari
@ Хари Это работает? Я пытаюсь gci | для каждого { ? {$ _. PsIsContainer}} 'и нет выхода - нет файлов, нет папок. '$ _' не имеет значения ...? – TessellatingHeckler
Я пробовал эту команду: 'Get-ChildItem C: \ * \ * -Directory | ? {$ _. PSIsContainer} | Выберите -ExpandProperty Name', и он дает мне тот же результат: 'Get-ChildItem c: \ -Directory | Get-ChildItem -Directory | Выберите -ExpandProperty Name'. Итак ... да, это работает. – Hari