gpt4 book ai didi

date - 清除具有特定参数的目录

转载 作者:行者123 更新时间:2023-12-03 00:00:56 26 4
gpt4 key购买 nike

我正在尝试创建一个计划任务以清除旧代码的开发目录。我已经看到了一些接近的示例,但是有些事情我似乎不太正确。

首先,我正在使用的根目录中没有文件。它充满了子目录。在子目录中,无论如何,我都需要保留两个目录,所有目录都包含在内。如果剩余目录超过14天,则其余目录及其内容将被删除。任何目录中的任何内容都不需要按日期排序。仅应考虑初始顶级目录的日期。这是我无法正常使用的内容...正在删除文件夹中的所有内容,令我非常沮丧!

# Set folder path
$dump_path = "C:\TEMP"
# Set min age of files
$max_days = "-14"
# Get the current date
$curr_date = Get-Date
# Determine how far back we go based on current date
$del_date = $curr_date.AddDays($max_days)
# Delete the files older than x days on the main folder level (Folders Excluded)
Get-ChildItem $dump_path | ?{ !$_.PsIsContainer } | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item -Force -Confirm:$False
# Delete the folders (and all included content) older than x days on the main folder level (Files Excluded)
Get-ChildItem $dump_path |? {$_.psiscontainer -and $_.lastwritetime -le (get-date).adddays(-14) -and (-not($_.name -eq "SoftwareInventory;atms"))} | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item -Recurse -Force -Confirm:$False

感谢您能获得的所有帮助,可以使它正常工作。我没有写这段代码。它在这个站点和其他站点都是零碎的,将我发现的碎片放在一起,试图使其正常工作。我在编码方面很新。

最佳答案

如果感觉您的问题来自Where-Object中的此子句

-not($_.name -eq "SoftwareInventory;atms")

“SoftwareInventory”和“atms”是您要保留的文件夹吗?如果是这样,则该语法将不起作用,因为它正在寻找与实际上称为“SoftwareInventory; atms”的文件夹的匹配。我认为我们需要对该条款进行一些更新
("SoftwareInventory","atms" -notcontains $_.name)

这样就可以使用 -notcontains并匹配所有未命名为“SoftwareInventory”或“atms”的文件夹

错误的报价?

通常这是一个复制粘贴错误,但是您在我删除的问题中使用了单引号。
  • “可能导致问题
  • “标准报价
  • 关于date - 清除具有特定参数的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29711134/

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