我的PowerShell脚本

时间:2016-10-25 20:36:48

标签: powershell

我有一个PowerShell脚本可以删除目录中的文件,包括子目录中的文件。我需要它只删除该目录中的文件,而不是删除子目录中的文件

这就是我所拥有的:

    $DelFiles = get-childitem $DirectoryName -include $FileTemplate -recurse |where {$_.Lastwritetime -lt (date).AddDays(-$days)}

任何帮助将不胜感激

3 个答案:

答案 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