ฉันต้องการใช้ get-childitem ซ้ำ แต่ให้คืนไฟล์ไม่ใช่ไดเรกทอรี ทางออกที่ดีที่สุดที่ฉันมีดูเหมือนไม่เป็นธรรมชาติ:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
ฉันต้องการใช้ get-childitem ซ้ำ แต่ให้คืนไฟล์ไม่ใช่ไดเรกทอรี ทางออกที่ดีที่สุดที่ฉันมีดูเหมือนไม่เป็นธรรมชาติ:
gci . *.* -rec | where { $_.GetType().Name -eq "FileInfo" }
คำตอบ:
ลองสิ่งนี้:
gci . *.* -rec | where { ! $_.PSIsContainer }
ใน Powershell 3.0 มันง่ายกว่า
gci -Directory #List only directories
gci -File #List only files
มันสั้นกว่านี้
gci -ad # alias for -Directory
gci -af # alias for -File
ใน PowerShell 3.0 คุณสามารถใช้-Attributes
พารามิเตอร์ที่เพิ่มใหม่
(พร้อมกับตัวดำเนินการทางตรรกะ)
Get-ChildItem -Recurse -Attributes !Directory+!System
แข็งแรงเล่นกอล์ฟ
dir -r -Attributes !D
ใน powershell 2.0 ทางออกที่ดีที่สุดและง่ายที่สุดที่ฉันคิดไว้คือการรวมไฟล์ทั้งหมดที่มีนามสกุล:
get-childitem -Recurse -include *.*
โฟลเดอร์ไม่มีส่วนขยายดังนั้นจึงถูกแยกออกไประวังไม่มีไฟล์ชื่อนามสกุล