Powershell - удаляет файлы старше x дней

У меня есть сценарий ниже, который предназначен для удаления файлов старше X дней, но он ничего не делает. Он выводит сообщение в файл TXT, чтобы сказать, успешно он или нет, и все равно безуспешно. Любые идеи?

$Path = "H:\Test\Test2"
$Days = "-0"
$CurrentDate = Get-Date
$Extension = "*."
$DatetoDelete = $CurrentDate.AddDays($Days)
$DeleteHistoryFile = "H:\Test\TestLogDeleteHistory.txt"
$Files = Get-ChildItem $Path -Include $extension | Where-Object {$_.LastWriteTime -lt $DatetoDelete}

if ($Files -ne $null) 
    {
        foreach ($File in $Files) {
            $Message = "$file has been deleted based on a $Days day rentention policy."
            $Message | Out-File $DeleteHistoryFile -Append
            Remove-Item $File.FullName | out-null
            }             
        }
    else
    {
    $message_no_files = "$DatetoDelete`: There are no files older than $Days days, no files were be deleted"
    $message_no_files | Out-File $DeleteHistoryFile -Append
    }

разница в моем скрипте в том, что он мне нужен для вывода, если он успешен или нет.

плюс

Может кто-нибудь объяснить, как я могу запустить это с локального компьютера на удаленный сервер. О чем мне нужно думать, когда я его настраиваю? или проще запустить его прямо на этом ящике?

$Days = "-0" здесь виноват. Поскольку вы используете двойные кавычки, $Days становится строкой. См. $Days.GetType(). Измените это на $Days = -0. Даже лучше. Поскольку вы фактически не вычитаете какое-либо количество дней, ваш $DatetoDelete может быть равен $CurrentDate.
Vivek Kumar Singh 26.10.2018 07:55

@rohan groombridge - параметры -Include и -Exclude ... ненадежны, если вы НЕ используете еще и -Recurse. в моей системе win7ps5.1 ваша переменная $Files никогда не содержит ничего. [ухмылка] попробуйте изменить -Include на -Filter` - он работает быстрее и у вас есть только одно расширение, так что это, вероятно, лучший вариант. ///// также ваше расширение '*.' будет получать файлы и каталоги. поэтому, если вам нужны файлы без расширений, я рекомендую вам использовать параметр -File.

Lee_Dailey 26.10.2018 08:26

Возможный дубликат Windows PowerShell - удаление файлов старше X дней

user6811411 26.10.2018 11:52
1
3
53
0

Другие вопросы по теме