none
ZIP-Archive in ein Zielverzeichnis entpacken RRS feed

  • Frage

  • Hallo,

    ich benötige Eure Hilfe, und zwar möchte ich ein Skript bauen, das von der Quelle ZIP-Archive in ein Ziel entpackt.

    Das Quellverzeichnis hat folgenden Benennung: dailyYYMM (YYMM wechselt monatlich, also 1202, 1203 etc...)

    Die Dateien sollen direkt in das Zielverzeichnis entpackt werden.

    Habe dazu ein Skript im Internet gefunden und mit der Timestamp-Variablen angepasst:

    Timestamp = get-date -f yyMM

    PARAM (
        [string] $ZipFilesPath = "C:\test\daily$Timestamp",
        [string] $UnzipPath = "C:\test\Ziel"
    )

    $Shell = New-Object -com Shell.Application
    $Location = $Shell.NameSpace($UnzipPath)

    $ZipFiles = Get-Childitem $ZipFilesPath -Recurse -Include *.ZIP

    $progress = 1
    foreach ($ZipFile in $ZipFiles) {
        Write-Progress -Activity "Unzipping to $($UnzipPath)" -PercentComplete (($progress / ($ZipFiles.Count + 1)) * 100) -CurrentOperation $ZipFile.FullName -Status "File $($Progress) of $($ZipFiles.Count)"
        $ZipFolder = $Shell.NameSpace($ZipFile.fullname)

        $Location.Copyhere($ZipFolder.items(), 1040) # 1040 - No msgboxes to the user - http://msdn.microsoft.com/en-us/library/bb787866%28VS.85%29.aspx
        $progress++
    }

    Ich bekomme nun immer folgende Fehlermeldung:

    Ungültiger Zuweisungsausdruck. Die linke Seite eines Zuweisungsoperators muss einer Variablen oder Eigenschaft zugewies
    en werden können.
    Bei C:\test\copy.ps1:5 Zeichen:26
    +     [string] $UnzipPath = <<<<  "C:\test\Ziel"
        + CategoryInfo          : ParserError: (:) [], ParseException
        + FullyQualifiedErrorId : InvalidLeftHandSide

    Was mache ich falsch?

    Freitag, 24. Februar 2012 09:19

Antworten

  • Du hast da ein paar Fehler am Anfang, so sollte es gehen:

    $Timestamp = get-date -f yyMM
    [string]$ZipFilesPath = "C:\test\daily$Timestamp"
    [string]$UnzipPath = "C:\test\Ziel"

    Timestamp brauch ein "$" und das Komma am Ende der zweiten Zeile muß weg. "PARAM" ist für die Parameterdeklaration in Funktionen gedacht, hat also hier nichts zu suchen.

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    • Als Antwort markiert Julian79 Freitag, 24. Februar 2012 12:10
    Freitag, 24. Februar 2012 09:47
    Moderator

Alle Antworten

  • Du hast da ein paar Fehler am Anfang, so sollte es gehen:

    $Timestamp = get-date -f yyMM
    [string]$ZipFilesPath = "C:\test\daily$Timestamp"
    [string]$UnzipPath = "C:\test\Ziel"

    Timestamp brauch ein "$" und das Komma am Ende der zweiten Zeile muß weg. "PARAM" ist für die Parameterdeklaration in Funktionen gedacht, hat also hier nichts zu suchen.

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    • Als Antwort markiert Julian79 Freitag, 24. Februar 2012 12:10
    Freitag, 24. Februar 2012 09:47
    Moderator
  • Hallo Denniver,

    ...super DANKE! Hat geklappt! :-)

    Freitag, 24. Februar 2012 12:10
  • Hallo Denniver,

    ich habe doch nochmal eine Frage:

    Im Quellverzeichnis liegen immer so 2-3 ZIP's, diese sollen ins Zielverzeichnis entpackt werden. Allerdings ohne ein Unterverzeichnis im Zielverzeichnis zu erstellen. Also alles direkt in das Verzeichnis rein. Zusätzlich soll das Zielverzeichnis vorher leer sein!

    Wie stelle ich das an?

    Gruß

    Julian.

    Freitag, 24. Februar 2012 13:08