我正在尝试编写一个脚本,它将查看一组文件夹并仅保留最后10个文件.每个文件夹中的文件可以每天,每周或每月创建.无论创建日期或修改日期如何,我都需要脚本来保留最近的10个副本.
使用另一篇文章我创建了下面的脚本,但它不会保留10个副本,它会保留任何不超过10天的文件.
$ftppath = "C:\Reports"
Get-ChildItem $ftppath -recurse *_Report_*.zip -force|where {$_.lastwritetime -lt (get-date).adddays(-10)} |Remove-Item -force
Run Code Online (Sandbox Code Playgroud)
关于我如何调整这个工作的任何想法?如果我使用下面的脚本它可以工作,但只有我不设置-Recurse.如果您使用-Recurse开关,则会收到我在脚本下方列出的错误.
# Keeps latest 10 files from a directory based on Creation Time
#Declaration variables
$path = "C:\Reports" # For example $path= C:\log\*.tmp
$total= (ls $path).count - 10 # Change number 5 to whatever number of objects you want to keep
# Script
ls $path |sort-object -Property {$_.CreationTime} | Select-Object -first $total | Remove-Item -force
Run Code Online (Sandbox Code Playgroud)
错误:Select-Object:无法验证参数'First'的参数.-7参数小于允许的最小范围0.提供大于0的参数然后再次尝试该命令.
我想知道是否有人能告诉我Ruby 1.8.7和Ruby 1.9.3之间的变化.我有一个下面列出的示例,在2个版本中表现完全不同,但根据Ruby文档,它们在这些版本之间似乎没有任何变化.
Ruby 1.8
number = '123-45-6789'
# => "123-45-6789"
number.scan(/[0-9]/)
# => ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
number.scan(/[0-9]/).to_s
# => "123456789"
Run Code Online (Sandbox Code Playgroud)
Ruby 1.9
number = '123-45-6789'
# => "123-45-6789"
number.scan(/[0-9]/)
# => ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
number.scan(/[0-9]/).to_s
# => "[\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]"
Run Code Online (Sandbox Code Playgroud)
并没有真正寻找一种不同的方式来做这件事只是好奇两个版本之间的变化.