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

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

Аватара для YuS_2

Crazy


Contributor


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

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


Цитата it3:
Ежемесячно - поэтому совпадений имен не должно быть. Исходные файлы удалять после архивирования. Подкаталог "bkp" есть в каждом каталоге - этот та папка, в которую складываются архивы. Кроме *.txt нет. »
Код: Выделить весь код
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

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

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:30, 17-09-2018 | #11