Mit Befehlszeilen und Leerzeichen zu kämpfen

803
Torben - TSC

Wir verwenden immer noch TFS 2010 und Msbuild als Buildsystem. Momentan müssen wir einen Build auf Jenkins auslösen, also haben wir unserem Skript in msbuild eine exec-Aufgabe hinzugefügt, die curl und eine netcr-Datei verwendet. Leider enthält unsere URL Leerzeichen, die wir als "% 20" maskiert haben, aber nachdem unser exec-Aufruf im Protokoll des Builds gestiegen ist, wird eine Fehlermeldung angezeigt, dass der Server nicht gefunden wurde. Ich habe herausgefunden, dass msbuild versucht, die URL nicht zu verwenden, wenn ich es eingegeben habe, aber msbuild demaskiert "% 20" in Leerzeichen, die wir nicht brauchen. Im Build-Protokoll scheint es, dass dieser Befehl ausgelöst wurde:

"c: \ Tools \ Curl \ curl.exe --netrc-Datei c: \ Tools \ Curl \ .netrc https://my.domain.de/job/My Strange Build Artefakte / buildWithParameters? token = Mein-Token- build & VERSION = 1.2.3.10373 " 

Ich habe verschiedene Varianten der Maskierung der gesamten URL mit versucht

" and & 

aber ohne erfolg.

Wie kann ich also eine Exec-Task wie folgt auslösen:

<Exec ContinueOnError="true" Command="c:\Tools\Curl\curl.exe --netrc-file c:\Tools\Curl\.netrc &quot;https://my.domain.de/job/My%20Strange%20Build%20Artifacts/buildWithParameters?token=MY-token-build&amp;VERSION=1.2.3.10373&quot;"> <Output TaskParameter="ExitCode" PropertyName="ResultUploadArtifactsToJenkins" /> </Exec> 

was zu einem echten cmd-Zeilenbefehl führt, der immer noch "% 20" enthält:

"c: \ Tools \ Curl \ curl.exe --netrc-Datei c: \ Tools \ Curl \ .netrc https://my.domain.de/job/My%20Strange%20Build%20Artifacts/buildWithParameters?token=My -token-build & VERSION = 1.2.3.10373 " 
0
Ich habe das Bash-Tag entfernt, da Ihre Frage mit Bash überhaupt nichts zu tun zu haben scheint. terdon vor 7 Jahren 0
Konfigurieren Sie Ihren Server so, dass Leerzeichen in "% 20" konvertiert werden, oder lesen Sie ihn immer dann, wenn "% 20" konvertiert wird, indem Sie ```blockieren. Seth vor 7 Jahren 0

0 Antworten auf die Frage