Saya perlu mendapatkan daftar file di semua subdirektori $PSScriptRoot tetapi mengecualikan file apa pun di folder induk $PSScriptRoot.

$Files = Get-ChildItem -LiteralPath $PSScriptRoot -Recurse | Where-Object {!$_.PSIsContainer}
0
Fr3nZy 4 Januari 2021, 19:08

3 jawaban

Jawaban Terbaik

Anda dapat membuat daftar folder induk terlebih dahulu, lalu mengulang setiap direktori untuk file:

$Files = Get-ChildItem -LiteralPath $PSScriptRoot -Directory | Get-ChildItem -File -Recurse
2
RoadRunner 4 Januari 2021, 16:29

Anda dapat menambahkan klausa Where-Object untuk memfilter semua file yang berada langsung di dalam $PSScriptRoot:

$Files = Get-ChildItem -LiteralPath $PSScriptRoot -Recurse -File | Where-Object { $_.DirectoryName -ne $PSScriptRoot}

anda dapat menggunakan sakelar -File alih-alih Where-Object {!$_.PSIsContainer} pada PowerShell versi 3.0

1
Theo 4 Januari 2021, 16:18

Anda hanya perlu memanggil Get-ChildItem lagi sebagai pipa

$Files = Get-ChildItem -LiteralPath $PSScriptRoot -Recurse | Where-Object {!$_.PSIsContainer} | Get-ChildItem
0
Ciprian Hirlea 4 Januari 2021, 16:16