2017-11-24 5 views
0

ich ein Powershell-Skript zu machen bin versucht, nimmt die ihnen bestimmte Dateien und oder Ordner und Reißverschluss automatisch greift auf meinen Techs reimages schnellerfür einen Skript suchen, das Datei und Reißverschluss sie zu einem Bündel

Wir haben zu machen Ziehen Sie die Reißverschlüsse und/oder Ordner von bestimmten Positionen, um sie zu sichern, bevor Sie ein System neu erstellen. Kann mir jemand helfen?

Ich bin ziemlich neu in Powershell.

Param(
    [string]$FilesLocation, 
    [string]$BackupPath, 
    $Days 
) 

$CurrentTime = "\" + (get-date -f MM_dd_yyyy) + "_" + (get-date -f HH_mm) + "_Backup_" 
#$BackupPath = $BackupPath+$CurrentTime 

$BackupPath 
$Name = $CurrentTime + ".zip" 

$ArchiveFile = Join-Path -Path $BackupPath -ChildPath $Name 
If (Test-path $ArchiveFile) {Remove-item $ArchiveFile} 

Get-ChildItem -Path $FilesLocation - | 
    Where-Object {$_.CreationTime -gt (Get-date).AddDays(-1)} | 

Add-Type -assembly "system.io.compression.filesystem" 
[io.compression.zipfile]::CreateFromDirectory($FilesLocation, $ArchiveFile) 
+0

Wird ein Fehler angezeigt? –

+0

Sorry habe diesen Kommentar nicht gesehen was ich versuche zu tun ist nicht unbedingt nach Datum, aber ich muss bestimmte Ordner alle zusammen oder nur bestimmte Dateien greifen So wie würde ich das nehmen und fügen mehr als eine Datei oder sogar Ordner und haben sie am Ende Ill gezippt haben einen Fortschrittsbalken früher hinzufügen oder später –

Antwort

0

Ich versuchte dies und es funktionierte gut für mich.

Add-Type -Path "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll" 
$logFolder=Read-Host "enter foldername (eg=c:/temp)" 
$zipFileName=Read-Host "enter a name for zip file (eg=filename.zip)" 
$finalPath=$logFolder+"/"+$zipFileName 
Write-Host $finalPath 
$startDate=Read-Host "enter date in the format mm/dd/yyyy" 
$endDate=Read-Host "enter date in the format mm/dd/yyyy" 
# creates empty zip file: 
[System.IO.Compression.ZipArchive] $archive = [System.IO.Compression.ZipFile]::Open($finalPath,[System.IO.Compression.ZipArchiveMode]::Update) 
# add your files to archive 
Get-ChildItem -path $logFolder | foreach {[System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($archive,$_.FullName,$_.Name)} 
# archive will be updated with files after you close it. normally, in C#, you would use "using ZipArchvie arch = new ZipFile" and object would be disposed upon exiting "using" block. here you have to dispose manually: 
$archive.Dispose() 

Es wird die Zip für alle Dateien auf $logFolder verfügbar erstellen.

+0

und ich gehe davon aus, dass 'finalPath = $ LogFolder +„/“+ zipFileName' $ „/“ist das Ziel wo ist die zip gespeichert oder muss ich noch '$ Ziel =" C: \ Benutzer \ Name \ Desktop "' ??? –

+0

Nun, wenn ich es läuft blinkt und geht weg, wenn ich alles kopieren, was in der .ps1 ist es läuft, was drin ist und gibt Fehler hier ist, was ich habe in der .ps1 und wie füge ich eine andere Datei oder einen Ordner zu $ LogFolder = Read-Host https://pastebin.com/DENbqLR1 –

+0

Ja '$ finalPath' ist der Weg für die Zip-Datei –

Verwandte Themen