gpt4 book ai didi

powershell - 使用 PowerShell 递归删除文件

转载 作者:行者123 更新时间:2023-12-04 22:34:00 24 4
gpt4 key购买 nike

我需要根据他们的 上次访问 时间删除所有文件(递归地在所有文件夹和子文件夹中)。

我正在查看建议这个答案的 Stack Overflow 帖子 Batch file to delete files older than N days:

forfiles -p "C:\what\ever" -s -m *.* -d <number of days> -c "cmd /c del @path"

但是,这会根据上次修改时间而不是上次访问时间删除文件。

另外,有没有办法将命令保存在脚本文件中,这样我就可以双击它来运行?

最佳答案

使用 Get-ChildItem -recurse 获取所有文件,然后您可以将它们通过管道传输到 where-object commandlet 以过滤掉目录并使用 LastAccessTime 属性根据该属性进行过滤。然后将结果通过管道传送到执行删除命令的 foreach 对象。

它最终看起来像这样。请注意 Get-Date 的使用,要获取自年初以来更新的所有文件,请替换为您自己的日期:

get-childitem C:\what\ever -recurse | where-object {-not $_.PSIsContainer -and ($_.LastAccessTime -gt (get-date "1/1/2012"))} | foreach-object { del $_ }

或者使用一些常见的别名来缩短一切:
dir C:\what\ever -recurse | ? {-not $_.PSIsContainer -and ($_.LastAccessTime -gt (get-date "1/1/2012"))} | % { del $_ }

关于powershell - 使用 PowerShell 递归删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12378714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com