Скрипт Powershell для очистки папок
Я пытаюсь найти способ удалять содержимое подпапок на еженедельной основе; однако я хотел бы исключить удаление чего-либо из ЛЮБОГО из "архивных" именованных подпапок (сохранение их содержимого на месте) в любом из почтовых ящиков FTP учетной записи пользователя.
Вы можете выполнить это с помощью простой логики сценария PowerShell, используя одну из четырех приведенных ниже, которые используют символы звездочки для подстановочных знаков файлов и / или папок.
В приведенном ниже примере логики используется Remove-Item, включая параметры -Recurse
и -Exclude
.
Я думаю, что самый верхний пример (или тот, что под ним) - это тот, который вам нужен, основываясь на вашем описании, но протестируйте со всеми, если это необходимо для подтверждения. Я проверил и подтвердил, что они работают нормально, и, как и ожидалось, из тестовой папки в моей среде.
Я бы посоветовал вам протестировать их в своей среде только для того, чтобы убедиться, что вы работаете так, как ожидалось, для ваших нужд, прежде чем запускать какие-либо рабочие папки на всякий случай.
Примеры команд PowerShell
(Используйте ниже, чтобы удалить все файлы с расширением файла ниже C:\ftp\ftp-users\*\*\~
исключая ЛЮБЫЕ подпапки с именем "Архив" и его содержимое почтовых ящиков FTP на этом уровне)
Remove-Item "C:\ftp\ftp-users\*\*\*.*" -Recurse -Exclude "Archive" -Force
(Используйте ниже, чтобы удалить все файлы и все подпапки ниже C:\ftp\ftp-users\*\*\~
исключая ЛЮБУЮ подпапку с именем "Архив" и ее содержимое почтовых ящиков FTP на этом уровне)
Remove-Item "C:\ftp\ftp-users\*\*\*" -Recurse -Exclude "Archive" -Force
(Используйте ниже, чтобы удалить все файлы и все подпапки ниже C:\ftp\ftp-users\*\~
исключая подпапку с именем "Архив" и ее содержимое почтовых ящиков FTP на этом уровне)
Remove-Item "C:\ftp\ftp-users\*\*" -Recurse -Exclude "Archive" -Force
(Используйте приведенное ниже, чтобы удалить все файлы с расширением ниже C:\ftp\ftp-users\*\~
и ничего более, так что он не затронет ЛЮБЫЕ подпапки почтовых ящиков FTP на этом уровне, поэтому параметр -Exclude
отсутствует)
Remove-Item "C:\ftp\ftp-users\*\*.*" -Recurse -Force