Удаление временных файлов: ~$*.xls ...
Есть Share: "\\srv\Documents\" с кучей подкаталогов, необходимо удалить все файлы из всех подкаталогов. Формат файлов таков: ~$*.xls;~$*.xlsx;~$*.doc;~$*.docx;~$*.pptx;~$*.ppt.
Каким образом это можно сделать средствами PowerShell?
|
greg zakharov |
11-08-2020 14:50 2930813 |
Пардон, а разве это не свопы открытых документов? Свопы обычно лочатся и при попытке удалить их получается фига. Бывает, правда, что Word или Excel забывают подчистить за собой, тогда ничего не остается как удалять их вручную или скопом. Например:
Код:
(Get-ChildItem X:\Path -Recurse -File -Force).Where{$_.Name -match '\.(doc|xls|ppt)(?:x)?$'}.ForEach{Remove-Item $_.FullName -Force}
Подбить пример под свои нужды, очевидно, сможете самостоятельно.
|
Цитата:
Цитата greg zakharov
Пардон, а разве это не свопы открытых документов? Свопы обычно лочатся и при попытке удалить их получается фига. Бывает, правда, что Word или Excel забывают подчистить за собой, тогда ничего не остается как удалять их вручную или скопом. »
|
Это свопы закрытых документов (при некорректном завершении работы с файлом, свопы не удаляются).
Цитата:
Цитата greg zakharov
Подбить пример под свои нужды, очевидно, сможете самостоятельно. »
|
Подбить пример - указать свой путь? Попробовал, скрипт удаляет почти всё на своем пути.
|
Цитата:
Цитата JimmLight
при некорректном завершении работы с файлом »
|
С нынешними версиями офиса для того чтобы своп не самоубился при закрытии файла всякий там ворд/эксель/поверпойинт нужно убивать совсем уж жестоко. Есть еще один вариант "неудаления" подобных файлов - кривые NTFS разрешения на папке. Если дело в этом (а сохранность файлов на шаре в документах которые нужно редактировать но нельзя удалять часто подкостыливается через снятие разрешения на удаление), то я бы рекомендовал таки пересмотреть разрешения. Например с правом на удаления для овнера и с созданием/дозаписью для всех кто имеет доступ к шаре.
|
greg zakharov |
12-08-2020 12:33 2930919 |
Цитата:
Цитата JimmLight
Подбить пример - указать свой путь? Попробовал, скрипт удаляет почти всё на своем пути.
|
В вашем случае "подбить" - не копипастить, изменив путь (хотя оный также потребуется поправить), а дополнить шаблон совпадений. Слово "пример" было употреблено неслучайно.
|
Сделал следующим образом:
Код:
Get-ChildItem -Path "X:\Test" -Include "~$*.doc","~$*.docx","~$*.xlsx","~$*.xls","~$*.ppt","~$*.pptx" -Force -Recurse | Remove-Item -Force -Recurse
|
greg zakharov |
12-08-2020 12:40 2930923 |
И получили crapcode. Удачи!.
|
Время: 15:59.
© OSzone.net 2001-