2016-05-06 6 views
0

Ich versuche, Artefakte von einem Nexus-Server herunterzuladen. Also habe ich das untenstehende ps-Skript gefälscht.Fehler beim Parametrieren einer Download-URL im Powershell-Skript

$Webclient = New-Object System.Net.WebClient 
$Nexusurl = "http://ec2-54-xxx-xxx-xxx.us-west-2.compute.amazonaws.com:8081/nexus/content/repositories/releases/org/bar" + "/" + ${BUILD_NUMBER} + "/" + ${ProjectName}.zip 
$Webclient.DownloadFile($Nexusurl, 'c:\webcontent.zip') 

Ich habe 2 Dinge als Parameter in der PS. Die BUILD_NUMBER des jenkin und der ProjectName. Diese 2 werden als Parameter im jenkins-Job festgelegt. Die ProjectName ist der Name des Artefakts auf dem Nexus-Server, der heruntergeladen werden soll.

Der Befehl wird ohne Fehler ausgeführt. Aber die Datei c:\webcontent.zip wird beim Dekomprimieren als ungültig angezeigt. Also, ich denke, die URL ($ Nexusurl) ist falsch beim Ausführen der PS konstruiert. Hinzufügen eines Echo ähnliche

echo $Nexusurl

ergab, dass die URL die Parameter fehlt. Sie sind nicht in der $Nexusurl

http://ec2-54-xxx-xxx-xxx.us-west-2.compute.amazonaws.com:8081/nexus/content/repositories/releases/org/bar// 

ersetzt Was bin ich falsch tun, dass die Parameter in der URL nicht ersetzt werden. Ich habe viele Kombinationen ausprobiert, aber bisher nicht erfolgreich!

Antwort

0

Noch ein Push und ich denke, ich bin da. Die endgültige PS Skript sieht wie folgt aus:

$Webclient = New-Object System.Net.WebClient 
$Nexusurl = "http://ec2-54-xxx-xxx-xxx.us-west-2.compute.amazonaws.com:8081/nexus/content/repositories/releases/org/bar" + "/" + $ENV:BUILD_NUMBER + "/" + $ENV:ProjectName 
echo $Nexusurl 
$Webclient.DownloadFile($Nexusurl, 'c:\webcontent.zip') 

aber immer noch nicht sicher, warum ich eine Verlängerung der .zip nach dem $ENV:ProjectName platzieren können .. Also, für den Augenblick, ich bin der Parameter mit der .zip-Erweiterung mit

2

ich würde vorschlagen, eine formatierte Zeichenfolge unter Verwendung $Nexusurl als solche zu definieren:

$Nexusurl = "http://ec2-54-xxx-xxx-xxx.us-west-2.compute.amazonaws.com:8081/nexus/content/repositories/releases/org/bar/{0}/{1}.zip" -f $ENV:BUILD_NUMBER, $ENV:ProjectName 

Dies wird Unter im ersten Argumente wo {0} ist, und das zweite Argument, wo {1} ist.

Verwandte Themen