删除Windows

时间:2017-11-20 09:36:20

标签: windows batch-file directory purge

enter image description here我有一个包含.exe可执行文件和所需输入文件的目录。 对于每个单独的请求,在相同的路径中创建单独的目录(格式为Output_),并且相应的输出文件指向那里。

现在我需要清除旧的输出目录。有人可以解释如何在Windows中实现这一点。 我查看了forfiles文档和其他堆栈溢出答案,但没有找到有关为需要删除的文件夹提供名称模式的任何信息,尽管此选项可用于删除文件。

我正在尝试以下代码。但我想指定文件夹模式,以便我不删除其他文件。

forfiles /p "C:\work\Analysis\" /d +7 /c "cmd /c IF @isdir == TRUE rd /S /Q @path"

2 个答案:

答案 0 :(得分:0)

这是Powershell中的一个例子

$Now = Get-Date
$Hours = "4"
$TargetFolder = **!Folder in which old data exists!**
$LastWrite = $Now.AddHours(-$Hours)

$Folders = get-childitem -path $TargetFolder | 
Where {$_.psIsContainer -eq $true} | 
Where {$_.LastWriteTime -le "$LastWrite"} 

 foreach ($Folder in $Folders)
    {
    write-host "Deleting $Folder" -foregroundcolor "Red"
    Remove-Item $TARGETFOLDER\$Folder -recurse -Force
    }

答案 1 :(得分:0)

下面的命令为我完成了这项工作。 / M也适用于目录。感谢JJS对https://superuser.com/q/764348

的回答
forfiles /P C:\work\Analysis\ /M guid_* /d +5 /C "cmd /c if @isdir==TRUE rmdir /s /q @file"