2017-01-16 1 views
0

Wie bekomme ich Compress-Archive nur Unterordner Struktur komprimieren? Wie es jetzt ist, ist das Skript selbst in der .zip enthalten. Oder ist es möglich, das herauszufiltern?Compress-Archive in einem Skript angegeben enthält das Skript selbst

Der Code, den ich habe ist wie folgt:

if (!($PSScriptRoot)) { Split-Path $MyInvocation.MyCommand.Path -Parent } 
$destination = Split-Path $MyInvocation.MyCommand.Path -Parent 
$source = (Get-ChildItem $PSScriptRoot) 
$date = Get-Date -UFormat "%Y-%m-%d" 
$zipfile = $destination + "\createdOn" + $date + ".zip" 

#Check if file exists 
if ([System.IO.File]::Exists($zipfile)) 
{ 
    Clear-Host 
    Write-Host "File created: " $zipfile 
    Compress-Archive -DestinationPath $zipfile -Force -Path $source -CompressionLevel Optimal 
} 
else 
{ 
    Clear-Host 
    Write-Host "File created: " $zipfile 
    Compress-Archive -DestinationPath $zipfile -Force -Path $source -CompressionLevel Optimal 
} 
+0

Wie Sie verwenden 'Compress-Archive' in Powershell v2 erwarten zu können? –

Antwort

1

Versuchen:

$source = (Get-ChildItem $PSScriptRoot -exclude $MyInvocation.MyCommand) 
1

Wenn Sie $source auf die untergeordneten Elemente von $PSScriptRoot (der übergeordneten Ordner des Skripts) eingestellt, und dann erstellen ein Archiv von diesen Elementen, warum würde das resultierende Archiv nicht das Skript enthalten, das eines der untergeordneten Elemente genau dieses Ordners ist?

die Skriptdatei aus $source entfernen seine Aufnahme in das Archiv zu vermeiden:

$source = Get-ChildItem $PSScriptRoot | 
      Where-Object { $_.FullName -ne $PSCommandPath } 
Verwandte Themen