none
Нужен PowerShell Скрипт который архивирует файлы старше 90 дней и потом удаляет. RRS feed

  • Вопрос

  • Здравствуйте, кто может помочь в скрипте. НУжен такой скрипт в PowerShel.

    1. Скрипт читает из папки Все файлы старше 90 дней с расширением *.txt  (пример: C:\Temp).

    2. Скрипт архивирует в RAR выбранные файлы txt старше 90 дней в C:\archive.

    3. На выходе архив должен иметь вид DDMMyy.RAR, дату берет из системы, текущее время, 

    4. Писать лог в папку C:\Logs.

    5. Удалять файлы ТОЛЬКО после успешной архивации.

    Спасибо за ранее.

    1 августа 2016 г. 11:28

Ответы

  • #ag[format]    Generate archive name using the current date
    #to<time>      Process files older than <time>
    #t             Test files after archiving
    #df            Delete files after archiving
    C:\rar.exe a -ag+DDMMYY -to90d -t -df C:\archive\ C:\Test\*.txt | Out-File "C:\Log\$((Get-Date).ToString('ddMMyy')).txt"

    • Предложено в качестве ответа Guznin KA 1 августа 2016 г. 12:27
    • Помечено в качестве ответа KazunEditor 1 августа 2016 г. 12:48
    1 августа 2016 г. 11:54
    Отвечающий

Все ответы

  • киньте свой вариант, скажите что конкретно не получается, на чем застопорились. или вы хотите, чтобы все написали за вас?

    лично по мне, такой скрипт проще написать в обычном батнике, выйдет значительно проще

    1 августа 2016 г. 11:32
  • киньте свой вариант, скажите что конкретно не получается, на чем застопорились. или вы хотите, чтобы все написали за вас?

    лично по мне, такой скрипт проще написать в обычном батнике, выйдет значительно проще

    в батнике я на писал, но выдает ошибку что не удалось открыть rar:

    echo off
    rar m -to90d C:\Archiv\%date%.rar C:\TEMP  > C:\Archiv\Reports\rar_%date%.txt

    rar REM del C:\Reports /q

    1 августа 2016 г. 11:41
  • #ag[format]    Generate archive name using the current date
    #to<time>      Process files older than <time>
    #t             Test files after archiving
    #df            Delete files after archiving
    C:\rar.exe a -ag+DDMMYY -to90d -t -df C:\archive\ C:\Test\*.txt | Out-File "C:\Log\$((Get-Date).ToString('ddMMyy')).txt"

    • Предложено в качестве ответа Guznin KA 1 августа 2016 г. 12:27
    • Помечено в качестве ответа KazunEditor 1 августа 2016 г. 12:48
    1 августа 2016 г. 11:54
    Отвечающий
  • #ag[format]    Generate archive name using the current date
    #to<time>      Process files older than <time>
    #t             Test files after archiving
    #df            Delete files after archiving
    C:\rar.exe a -ag+DDMMYY -to90d -t -df C:\archive\ C:\Test\*.txt | Out-File "C:\Log\$((Get-Date).ToString('ddMMyy')).txt"

    Все отлично.! спасибо. заработала.
    1 августа 2016 г. 12:25