我在 Windows 机器上有一个文件夹 D:/Tests,它存储每天创建的文件夹。我需要在 Linux 机器上使用 ansible 运行的代码,该代码将删除除最后三个创建的文件夹之外的所有文件夹。我在stackoverflow中翻了几十篇文章,但是这些问题大部分都是使用bat文件解决的。对我来说,这个选项不合适。根据我的发现,这里与我需要的最相似:
Get-Childitem D:\Downloads_D -recurse | where {($_.creationtime -gt $del_date) -and ($_.name -notlike "*dump*" -and $_.name -notlike "*perform*")} | remove-item
但是我对 Powershell 的了解不足以对其进行编辑以执行我的任务。有什么方法可以使用 ansible 模块、Windows 命令行命令或 Powershell 命令来实现我的目标?
对于powershell,您可以执行以下操作:
Get-ChildItem -Path D:\Downloads_D -Directory | Sort-Object -Property CreationTime | Select-Object -SkipLast 3 | Remove-Item
说明
-Directory
from过滤目录Get-ChildItem
CreationTime
使用属性按属性对目录进行排序Sort-Object
Select-Object
和跳过最后 3 个目录-SkipLast 3
。这可确保不会删除最近创建的 3 个目录。Remove-Item
删除目录本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句