|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] backup файлов прошлого месяца |
|
Любой язык - [решено] backup файлов прошлого месяца
|
Пользователь Сообщения: 94 |
Добрый день!
Есть необходимость написать BAT-файл, который бы архивировал файлы прошлого месяца и складывал в отдельную папку. Вот мои наброски - но что то пошло не так (не работает). Подсобите пожалуйста. @echo on set param=%1 set source=f:\Share\LOGS\%param:"=% set dst=%source%\bkp set dst_tmp=%dst%\tmp echo %date% set d=%date:~0,2% set /a m=%date:~3,2%-1 set y=%date:~6,4% if %m:~0,1% neq 1 set m=0%m% set date_prep=%y%%m%%d% set date_ym=%y%%m% echo %date_prep% if not exist "%dst%" md "%dst%" if not exist "%dst_tmp%" md "%dst_tmp%" pause if %param% == "bkp" goto expt goto for :expt echo "ќвг Ї*ЇЄг *Ґ ва®Ј*Ґ¬" goto end :for forfiles /m *%date_ym%*.* -p "%source%" /C "cmd /c move @file \"%dst_tmp%\"" goto bkp :bkp "%ProgramFiles(x86)%\7-Zip\7z.exe" a -tzip -mx9 "%dst%\%param:"=%_%date_ym%.zip" "%dst_tmp%\*.*" IF %ERRORLEVEL%==0 goto ok goto end :ok del "%dst_tmp%\*.*" /q rd "%dst_tmp%" goto end :end |
|
Отправлено: 15:24, 13-09-2018 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата it3:
function arch-filter ($swt1,$swt2) { process{ $dname = $_.basename if(!(test-path ( $a = $_.fullname + $f_bck ) -patht container)){md $a|out-null} $arr = dir $_.fullname -filt $flt2 -file|%{ if($_.lastwritetime.month -le (get-date).addmonths(-1).month){ $_.fullname } } if($arr){ $b = $a+'\'+$dname+('_{0:yyyy-MM-dd_HH-mm-ss}' -f (get-date))+'.zip' if (!$swt1){ compress-archive $arr $b -force if ($swt2){del (gi $arr).fullname -force} } else { if ($swt2){&$arch a $b $arr -sdel} else {&$arch a $b $arr} } } else { write-host "В каталоге $dname файлы для архивирования отсутствуют." -foreg yellow } } } #корневой каталог, лучше указать абсолютный путь: $fld = 'logs' #подкаталог для хранения архивов (обязательный формат со слешем): $f_bck = '\bkp' #фильтр для отбора каталогов содержащих файлы *.txt: $flt1 = '*' #фильтр для отбора только файлов *.txt: $flt2 = '*.txt' #путь к файлу внешнего архиватора 7zip $arch = 'c:\Program Files\7-Zip\7z.exe' #ключ для выбора вида компрессии: 0 - встроенная упаковка, 1 - внешний архиватор 7zip $swtch1 = 1 #ключ для выбора удаления исходных файлов: 0 - не удалять, 1 - удалять $swtch2 = 1 dir $fld -filt $flt1 -dir|arch-filter $swtch1 $swtch2 |
|
------- Отправлено: 12:30, 17-09-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 94
|
Профиль | Отправить PM | Цитировать YuS_2, спасибо.
|
Отправлено: 12:56, 17-09-2018 | #12 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Удаление всех файлов в папке бекап - кроме первой записи каждого месяца | fabble86@vk | Скриптовые языки администрирования Windows | 12 | 13-12-2017 12:34 | |
CMD/BAT - [решено] Копирование файлов бекапов из папок за 1,10,20 число каждого месяца | alevakr | Скриптовые языки администрирования Windows | 4 | 17-11-2017 10:52 | |
2008 R2 - [решено] Не могу создать Backup задачу через планировщик. Windows Server Backup/ | deem73 | Windows Server 2008/2008 R2 | 4 | 23-12-2014 09:03 | |
CMD/BAT - BackUp файлов с выбором папок | codi28 | Скриптовые языки администрирования Windows | 0 | 10-05-2014 16:49 | |
CMD/BAT - Бекапирование Оутлук заблокированных pst файлов (backup Outlook) почты через bat/cmd | biossa | Скриптовые языки администрирования Windows | 0 | 28-09-2011 22:02 |
|