Batch file 删除名称以X开头且早于Y天的文件

Batch file 删除名称以X开头且早于Y天的文件,batch-file,cmd,Batch File,Cmd,我正在尝试删除一些名称以“Archive Security*”开头且超过5天的文件 我使用了以下cmd,但它返回“错误:未找到具有指定搜索条件的文件。” forfiles-m“Archive Security-*”-d-5-c“cmd/c del@path”我确信您已经解决了这个问题,或者它不再是一个问题,但这里有一种方法可以完成任务。这可以在.bat文件脚本中使用 powershell -NoProfile -Command ^ "Get-ChildItem -File -Filter

我正在尝试删除一些名称以“Archive Security*”开头且超过5天的文件

我使用了以下cmd,但它返回“错误:未找到具有指定搜索条件的文件。”


forfiles-m“Archive Security-*”-d-5-c“cmd/c del@path”

我确信您已经解决了这个问题,或者它不再是一个问题,但这里有一种方法可以完成任务。这可以在.bat文件脚本中使用

powershell -NoProfile -Command ^
    "Get-ChildItem -File -Filter 'Archive-Security-*' |" ^
        "ForEach-Object {" ^
            "if ((($(Get-Date) - $_.LastAccessTime).Days) -gt 5) {" ^
                "Remove-Item -Path $_.FullName -WhatIf" ^
            "}" ^
        "}"
当然,直接使用PowerShell会更容易

Get-ChildItem -File -Filter 'Archive-Security-*' |
    ForEach-Object {
        if ((($(Get-Date) - $_.LastAccessTime).Days) -gt 5) {
           Remove-Item -Path $_.FullName -WhatIf
        }
    }

我相信你已经解决了这个问题,或者它不再是一个问题,但这里将是一个完成任务的方法。这可以在.bat文件脚本中使用

powershell -NoProfile -Command ^
    "Get-ChildItem -File -Filter 'Archive-Security-*' |" ^
        "ForEach-Object {" ^
            "if ((($(Get-Date) - $_.LastAccessTime).Days) -gt 5) {" ^
                "Remove-Item -Path $_.FullName -WhatIf" ^
            "}" ^
        "}"
当然,直接使用PowerShell会更容易

Get-ChildItem -File -Filter 'Archive-Security-*' |
    ForEach-Object {
        if ((($(Get-Date) - $_.LastAccessTime).Days) -gt 5) {
           Remove-Item -Path $_.FullName -WhatIf
        }
    }

你的文件没有扩展名?试试
Blah*
。是的,它们确实有扩展名。其中一个文件的完整文件名如下:“Archive-Security-2016-02-29-20-47-57-481.etvx”
Archive Security-*.etvx
Archive Security-*.*.
对于文件
dir
和类似命令应为
somethig*
提供相同的结果。无需使用尾随
*
。必须有另一个原因…将
del
替换为
echo
以查看使用了哪些文件
forfiles-m“Archive Security-*”-d-5-c“cmd/c echo@path”
您的文件没有扩展名吗?试试
Blah*
。是的,它们确实有扩展名。其中一个文件的完整文件名如下:“Archive-Security-2016-02-29-20-47-57-481.etvx”
Archive Security-*.etvx
Archive Security-*.*.
对于文件
dir
和类似命令应为
somethig*
提供相同的结果。无需使用尾随
*
。必须有另一个原因…将
del
替换为
echo
以查看使用了哪些文件
forfiles-m“归档安全性-*”-d-5-c“cmd/c echo@path”