Борьба с командными строками и пробелами

692
Torben - TSC

Мы по-прежнему используем TFS 2010 и msbuild в качестве системы сборки. В настоящее время нам нужно запустить сборку на jenkins, поэтому мы добавили exec-задачу в наш скрипт в msbuild, используя curl и файл netcr. К сожалению, наш URL содержит пробелы, которые мы замаскировали как «% 20», но после того, как наш exec-вызов был повышен в журнале сборки, появляется сообщение об ошибке, говорящее о том, что сервер не может быть найден. Я понял, что msbuild пытается не использовать URL, как я его ввел, но msbuild разбивает наш "% 20" на пустые места, которые нам не нужны. В журнале сборки кажется, что эта команда была запущена:

"c: \ Tools \ Curl \ curl.exe --netrc-файл c: \ Tools \ Curl \ .netrc https://my.domain.de/job/My Strange Build Artifacts / buildWithParameters? token = My-token- строить & VERSION = 1.2.3.10373" 

Я пробовал несколько вариантов маскировки всего URL с помощью

" and & 

но безуспешно

Итак, как я могу запустить задачу exec, как это:

<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> 

в результате получится настоящая команда cmd-line, которая по-прежнему содержит «% 20»:

"c: \ Tools \ Curl \ curl.exe --netrc-файл c: \ Tools \ Curl \ .netrc https://my.domain.de/job/My%20Strange%20Build%20Artifacts/buildWithParameters?token=My -token-сборки и версия = 1.2.3.10373" 
0
Я удалил тег bash, поскольку ваш вопрос, похоже, не имеет ничего общего с bash. terdon 7 лет назад 0
Сконфигурируйте ваш сервер для преобразования пробелов в `% 20` или просматривайте его всякий раз, когда`% 20` конвертируется, читая ``блок. Seth 7 лет назад 0

0 ответов на вопрос