Batch file 删除名称以X开头且早于Y天的文件
我正在尝试删除一些名称以“Archive Security*”开头且超过5天的文件 我使用了以下cmd,但它返回“错误:未找到具有指定搜索条件的文件。”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
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”