我有一个PowerShell脚本可以删除目录中的文件,包括子目录中的文件。我需要它只删除该目录中的文件,而不是删除子目录中的文件
这就是我所拥有的:
$DelFiles = get-childitem $DirectoryName -include $FileTemplate -recurse |where {$_.Lastwritetime -lt (date).AddDays(-$days)}
任何帮助将不胜感激
答案 0 :(得分:2)
只需删除-recurse
:
$DelFiles = get-childitem $DirectoryName -include $FileTemplate | where {$_.Lastwritetime -lt (date).AddDays(-$days)}
答案 1 :(得分:0)
Powershell(v 2.0.-1.-1)有一个有趣的行为
Get-ChildItem . -include *.txt
- 你的期望会失败(将返回零匹配)
Get-ChildItem .\* -include *.txt
- 将产生适当预期的结果。 (将返回当前目录中的所有txt文件)
它似乎是它设计的一部分 - 请参阅它的手册:
Get-Help Get-ChildItem -full
也许你$ DirectoryName的格式类似于C:\ 111 \,当你的datagrab实际应该提供像C:\ 111 \ *
这样的东西时get-childitem C:\111\* -include *.txt
希望有所帮助。 ^ _ ^
答案 2 :(得分:0)
删除recurse并添加-file
如果您只想删除目录和子目录中的文件
get-childitem $DirectoryName -recurse -File -Filter $FileTemplate | where {$_.Lastwritetime -lt (date).AddDays(-$days)} | Remove-Item -Force
如果您只想删除目录中的文件而不删除子目录
get-childitem $DirectoryName -File -Filter $FileTemplate | where {$_.Lastwritetime -lt (date).AddDays(-$days)} | Remove-Item -Force