none
Архивировать папки старше 30 дней Powershell RRS feed

  • Вопрос

  • Добрый день!

    Пытаюсь написать скрипт, который будет архивировать папки, которые старше 30 дней, а папки которые старше 3 месяцев удалять. 

    Например : Папка : 2020_01_01, архив должен получиться 2020_01_01.zip

    У мен получился такой вариант

     

    ## Directory location 
    $path = "C:\1\" 

    $path_arx1="C:\arx\"
    ## Get current date and adjust
    $limit = (get-date).AddDays(-30) 


     $files = Get-ChildItem $path -recurse -force  -Exclude *.zip , *.exe | Where-Object {[datetime]::ParseExact($_.Name,"yyyy_MM_dd", $null) -lt $limit } 
     foreach ($file in $files){

      &"C:\Program Files\WinRAR\WinRAR.exe" a ($path_arx1 + $file.Name+".zip")  $file.Name 
    Remove-Item $file.FullName -Force -Recurse
    }

    Но выдает ошибку.

    Подскажите, в чем проблема. 

    4 декабря 2020 г. 11:25

Все ответы

  • Добрый день!

    Пытаюсь написать скрипт, который будет архивировать папки, которые старше 30 дней, а папки которые старше 3 месяцев удалять. 

    Например : Папка : 2020_01_01, архив должен получиться 2020_01_01.zip

    У мен получился такой вариант

     

    ## Directory location 
    $path = "C:\1\" 

    $path_arx1="C:\arx\"
    ## Get current date and adjust
    $limit = (get-date).AddDays(-30) 


     $files = Get-ChildItem $path -recurse -force  -Exclude *.zip , *.exe | Where-Object {[datetime]::ParseExact($_.Name,"yyyy_MM_dd", $null) -lt $limit } 
     foreach ($file in $files){

      &"C:\Program Files\WinRAR\WinRAR.exe" a ($path_arx1 + $file.Name+".zip")  $file.Name 
    Remove-Item $file.FullName -Force -Recurse
    }

    Но выдает ошибку.

    Подскажите, в чем проблема. 

    подскажите в чем ошибка...

    к слову подход странный, так как -Recurse лезет вглубь каталога, а вы оперируете не путями а именами файлов которые могут нагодится по произвольному пути


    The opinion expressed by me is not an official position of Microsoft

    4 декабря 2020 г. 14:27
    Модератор