Удалить папки с определенным шаблоном именования в пути в Windows

У меня есть каталог, который содержит исполняемый файл.exe и необходимые входные файлы. Для каждого отдельного запроса создается отдельный каталог (в формате Output_) по тому же пути, и соответствующие выходные файлы направляются туда.

Теперь мне нужно очистить старые выходные каталоги. Может кто-нибудь объяснить, как добиться этого в Windows. Я просмотрел документацию по файлам forfiles и другие ответы о переполнении стека, но не нашел никакой информации о предоставлении шаблона имени для папок, которые нужно удалить, хотя эта опция доступна для удаления файла.

Я пытаюсь код ниже Но я хочу также указать шаблон папки, чтобы не удалять другие файлы.

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

2 ответа

Решение

Ниже команда сделала работу за меня. /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"

Вот пример в 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
    }
Другие вопросы по тегам