Я пытаюсь написать сценарий PowerShell
, который проверяет, не заблокирован ли какой-либо из файлов в определенной папке каким-либо процессом; if true, только затем удалите папку.Как проверить, нет ли в папке каких-либо файлов, заблокированных каким-либо процессом?
Один из способов - проверить блокировки на каждом файле, открыв их в режиме RW итеративно - посмотреть, не произошло ли исключение. Но это слишком громоздко.
Есть ли способ проверить одно и то же для папки? Я пытался использовать Remove-Item
с флагом -WhatIf
, но это бесполезно, потому что команда не возвращает никакого значения - и не обнаружила заблокированные файлы. Если я попытаюсь запустить Remove-Item
без флага, чтобы искать исключение, тогда он удаляет только свободные файлы, тогда как я хочу иметь условие «Все» или «Нет».
Вы всегда можете получить Restart Manager, чтобы проверить блокировки для вас, но это все еще несколько громоздко. – Neil