PowerShell遍歷文件夾下的子文件夾和文件是一件很容易的事兒。Get-ChildItem這個(gè)cmdlet就有一個(gè)recurse參數(shù)是用于遍歷文件夾的。
PowerShell中,使用Get-ChildItem來獲取文件夾下面的子文件夾和文件(當(dāng)然,它的功能不僅于此)。然后我們可以使用ForEach-Object的cmdlet來循環(huán)遍歷下面的子對(duì)象。然后通過psiscontainer 屬性來判斷是文件夾還是文件。
#獲取D:\對(duì)象,返回值類型為System.IO.DirectoryInfo
Get-ChildItem D:\
#輸出D:\下所有文件的文件名
Get-ChildItem D:\ | ForEach-Object -Process{
if($_ -is [System.IO.FileInfo])
{
Write-Host($_.name);
}
}
#列出今天創(chuàng)建的文件
Get-ChildItem D:\ | ForEach-Object -Process{
if($_ -is [System.IO.FileInfo] -and ($_.CreationTime -ge [System.DateTime]::Today))
{
Write-Host($_.name,$_.CreationTime);
}
}
#找出D盤根目錄下的所有文件
Get-ChildItem d:\ | ?{$_.psiscontainer -eq $false}