2016-06-06 2 views
0

Я в основном пытаюсь выполнить некоторую базовую операцию удаления журнала несколькими шагами.

первого - получить все файлы, которые старше Х дней (7 в моем случае)
второй - Zip их в другое место
3-й - удалить заархивированные файлы
четвёртым - переходящие в папке молний журналов и удалить старше 30 дней
Как zip/7zip/или любой другой сжать список файлов

первого - завершен - я получаю список файлов
третьей - не проблема - я думаю
4-й - такое же, как 1 ...

2 ой ... вот я стараюсь использовать 7zip, как он уже встроен в Windows, мы имеем строгую политику пересортицы 3 инструменты сторонних так WinRar не вариант

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

if ((Test-Path "$env:ProgramFiles\7-Zip\7z.exe") -eq $true){Set-Alias sz "$env:ProgramFiles\7-Zip\7z.exe" } 
$DateStr = (Get-Date).ToString("dd-MM-yyyy") 
$arcPath = "D:\SDDP\LOG_Archive_$DateStr.zip" 

$limit = (Get-Date).AddDays(-7) 
$path = "D:\SDDP\LOG" 

$filesToBackUP = Get-ChildItem -Path $path -Recurse -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt $limit } 
ForEach ($file in $filesToBackUP) 
    { 
     sz a -tzip $archPath $file.FullName 
    } 

ошибка, я получаю:

Open archive: D:\SDDP\LOG\DISTRIBUTOR(232)\04-09-2015\SDDP_DISTRIBUTOR(232)_04-09-2015_1.csv 
sz : ERROR: D:\SDDP\LOG\DISTRIBUTOR(232)\04-09-2015\SDDP_DISTRIBUTOR(232)_04-09-2015_1.csv 
At line:13 char:9 
+   sz a -tzip $archPath $file.FullName 
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (ERROR: D:\SDDP\...4-09-2015_1.csv:String) [], RemoteException 
    + FullyQualifiedErrorId : NativeCommandError 

D:\SDDP\LOG\DISTRIBUTOR(232)\04-09-2015\SDDP_DISTRIBUTOR(232)_04-09-2015_1.csv 
Open ERROR: Can not open the file as [zip] archive 
ERRORS: 
Is not archive 
System ERROR: 
Incorrect function. 

Ссылка на команду зип я взял из here
, поскольку я прочитал ссылку на добавление, нет ничего о создании нового файла 7zip для добавления файлов, поэтому я предполагаю, что он создается автоматически, но не настолько уверен в этом.

Прошу совета.
Спасибо.

ответ

0

попробовать что-то вдоль линий:

[string]$Zip = "C:\path to 7zip\7-zip\7z.exe"; 
[array]$args = "a", "-tzip", "-y", "-r", "$arcPath "; 

ForEach ($file in $filesToBackUP) 
    { 
     $Zip $args $file; 
    } 

К сожалению, я в настоящее время на ходу и не в состоянии проверить это.

+0

Hi, это отлично работает! кажется, что мне просто нужно было добавить два параметра «-y» и «-r» странно, что они не зарегистрированы там! –

0

В PowerShell 5.0 приведен пример. Вы можете заменить dir .\dirToZip\* -File на список.

dir .\dirToZip\* -File | %{ 
    Compress-Archive -Path $_.fullname -DestinationPath .\test.zip -Update 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^