PowerShell遍历文件、文件夹的方法

需要清理某个目录下的子文件夹下的*.Log 文件

Get-ChildItem C:inetpublogsLogFiles -recurse *.log |Remove-Item -Force

PowerShell遍历文件夹下的子文件夹和文件是一件很容易的事儿。Get-ChildItem这个cmdlet就有一个recurse参数是用于遍历文件夹的。 PowerShell中,使用Get-ChildItem来获取文件夹下面的子文件夹和文件(当然,它的功能不仅于此)。然后我们可以使用ForEach-Object的cmdlet来循环遍历下面的子对象。然后通过psiscontainer 属性来判断是文件夹还是文件。 Get-ChildItem,获取指定对象的所有子对象集合。 举例:

#获取D:对象,返回值类型为System.IO.DirectoryInfo Get-ChildItem D: #输出D:下所有文件的文件名 Get-ChildItem D: | ForEach-Object -Process{ if($_ -is [System.IO.FileInfo]) { Write-Host($_.name); } } #列出今天创建的文件 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}

如果要找文件夹,则把$false换成$true

经验分享 程序员 微信小程序 职场和发展