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

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

Аватара для YuS_2

Crazy


Contributor


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

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


Цитата DJ Mogarych:
по какому критерию скрипт должен понять, какая папка последняя созданная и что это новая папка, а не уже существовавшая. »
Так ведь есть критерий: по времени. А была она там или нет - неважно... если я правильно понял.
Цитата Super_Kolobok:
можно совсем упростить - Нужно паковать только последнюю созданную папку »
powershell
Код: Выделить весь код
function Compress-New {
	param(
		[Parameter(Mandatory,ValueFromPipeline)]
		$source,
		$destination,
		$swt1,
		$swt2,
		$arch
	)
	process{
		$aout = $destination + '\' + $_.name + ('_{0:yyyy-MM-dd_HH-mm-ss}' -f (get-date))+'.zip'
		$compress = @{
			Path = $source
			#CompressionLevel = "Fastest"
			DestinationPath = $aout
		}
		if (!$swt1){
			compress-archive @compress
			if ($swt2) {del $source.fullname -force -rec}
		} else {
			if ($swt2) {&$arch a $aout $source -sdel} else {&$arch a $aout $source}
		}
	}
}

# каталог с архивами, лучше указать абсолютный путь:
$root = '.\1'
# целевой каталог для хранения новых архивов, лучше указать абсолютный путь:
$destination = '.\2'

$par = @{
	Destination = (gi $destination).fullname
	# путь к файлу внешнего архиватора 7zip
	Arch = "d:\Program Files\7-Zip\7z.exe"
	# ключ для выбора вида компрессии: 0 - встроенная упаковка, 1 - внешний архиватор 7zip
	Swt1 = 1
	# ключ для выбора удаления исходных файлов: 0 - не удалять, 1 - удалять
	Swt2 = 1
}

if (dir $par.destination){
	del $par.destination -rec -force
	$null = md $par.destination
}

dir $root -dir|sort lastwritetime -des|select -first 1|compress-new @par

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


Отправлено: 20:48, 05-04-2024 | #7