我有一个PowerShell脚本,删除目录中的文件,包括子目录中的文件。我需要它只删除该目录下的文件而不删除子目录
下的文件我有:
$DelFiles = get-childitem $DirectoryName -include $FileTemplate -recurse |where {$_.Lastwritetime -lt (date).AddDays(-$days)}
如有任何帮助,不胜感激
删除-recurse
:
$DelFiles = get-childitem $DirectoryName -include $FileTemplate | where {$_.Lastwritetime -lt (date).AddDays(-$days)}
Powershell (v2.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
希望有帮助。^ _ ^
删除递归并添加-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