Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1218
Благодарности: 509

Профиль | Отправить PM | Цитировать


it3, и это все подробности? м-да...
Ок.
Как часто будет происходить архивация - ежедневно, еженедельно, ежемесячно? Если чаще, чем ежемесячно, то что делать при совпадении имени архива? Что делать с исходными файлами - удалять или оставлять? Есть ли какие-либо подкаталоги или файлы в корневом каталоге, а также в подкаталогах "Folder*", кроме обозначенных *.txt?

Временное решение:
powershell
Код: Выделить весь код
function arch-filter {
	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){
			compress-archive $arr ($a+'\'+$dname+(
				'_{0:yyyy-MM-dd_HH-mm}' -f (get-date))+'.zip'
			)
#если требуется удаление исходных файлов, то раскомментировать следующую строку
			#del (gi $arr).fullname -force
		} else {
			write-host "В каталоге $dname файлы для архивирования отсутствуют." -foreg yellow
		}
	}
}

$fld = 'logs' #корневой каталог, лучше указать абсолютный путь
$f_bck = '\bkp' #подкаталог для хранения архивов (обязательный формат со слешем)
$flt1 = 'folder*' #фильтр для отбора каталогов содержащих файлы *.txt
$flt2 = '*.txt' #фильтр для отбора только файлов *.txt

dir $fld -filt $flt1 -dir|arch-filter

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 16-09-2018 в 08:37. Причина: поправил код


Отправлено: 21:14, 15-09-2018 | #8