2013-12-20 8 views
27

Ich habe folgendes Script-CodePower fehlt den Terminator: "

#[string]$password = $(Read-Host "Input password, please") 
    param (
     [string]$ReleaseFile = $(throw "-ReleaseFile is required"), 
     [string]$Destination = $(throw "-Destination is required") 
    ) 

    function unzipRelease($src, $dst) 
    { 
     $shell = new-object -com shell.application 
     $zip = $shell.NameSpace($src) 
     foreach($item in $zip.items()) 
     { 
      $shell.Namespace($dst).copyhere($item) 
     } 
    } 

    # .\deployrelease.ps1 -ReleaseFile ".\deploy.zip" -Destination "." 

    unzipRelease –Src '$ReleaseFile' -Dst '$Destination' 

ich das Skript ausführen mit:. \ Deployrelease.ps1 -ReleaseFile". \ Deploy.zip "-Destination" „

.

Aber ich erhalte immer diese:.

PS C:\Users\Administrator\Documents\Tools> .\deployrelease.ps1 -ReleaseFile ".\deploy.zip" -Destination 
    The string starting: 
    At C:\Users\Administrator\Documents\Tools\deployrelease.ps1:19 char:16 
    + unzipRelease â? <<<< "Src '$ReleaseFile' -Dst '$Destination' 
    is missing the terminator: ". 
    At C:\Users\Administrator\Documents\Tools\deployrelease.ps1:19 char:55 
    + unzipRelease â?"Src '$ReleaseFile' -Dst '$Destination' <<<< 
     + CategoryInfo   : ParserError: (Src `'$ReleaseF...'$Destination`':String) [], ParseException 
     + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString 

ich das Update nicht, da ich kein Problem sehe nicht finden konnte

Irgendwelche Hilfe?

+0

Was Editor verwenden Sie? – stark

+0

Notepad ++ :-) thx – CoolStraw

Antwort

75

Schauen Sie genau auf die zwei Striche in

unzipRelease –Src '$ReleaseFile' -Dst '$Destination' 

Das erste ist kein normaler Strich aber ein en-dash (&ndash; in HTML). Ersetzen Sie das durch den Bindestrich vor Dst.

+8

Mann ernsthaft wie könntest du das sehen ?? Vielen Dank ! – CoolStraw

+5

@CoolStraw: Die Fehlermeldung war ein Hinweis: 'Src' wurde nicht als Optionsschalter interpretiert, und da waren seltsame Zeichen (' â? '') Davor, also sah das wie ein Kodierungsproblem aus string, klebte es in EditPad Pro ein, ließ es alle Nicht-ASCII-Zeichen in ihre HTML-Kodierungen konvertieren, und voilà - '–' löste das Mysterium –

+8

+1 Du hättest einfach sagen sollen, du hättest die Augen eines Falken, statt das zu ruinieren Mystery –

1

In Ihrem Skript, warum verwenden Sie einfache Anführungszeichen um die Variablen? Diese werden nicht erweitert. Verwenden Sie doppelte Anführungszeichen für die variable Erweiterung oder nur die Variablennamen selbst.

unzipRelease –Src '$ReleaseFile' -Dst '$Destination' 

zu

unzipRelease –Src "$ReleaseFile" -Dst "$Destination"