Lutando com linhas de comando e espaços

0

Ainda usamos o TFS 2010 e o msbuild como sistema de compilação. Atualmente precisamos disparar uma compilação em jenkins, então adicionamos uma tarefa exec ao nosso script em msbuild usando curl e um arquivo netcr. Infelizmente nossa URL contém espaços em branco que mascaramos como "% 20" mas depois que nossa chamada exec foi aumentada no log da construção ocorre uma mensagem de erro dizendo que o servidor não pode ser encontrado. Eu descobri que msbuild tenta não usar o url quando eu entrei nele, mas msbuild exclui nosso "% 20" em espaços em branco, o que não precisamos. No log de construção, parece que esse comando foi acionado:

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

Eu tentei várias variações de mascarar o URL inteiro usando

" and &

mas sem sucesso.

Então, como posso acionar uma tarefa exec assim:

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

que resultará em um comando de linha de comando real, como o que ainda contém "% 20":

"c:\Tools\Curl\curl.exe --netrc-file c:\Tools\Curl\.netrc https://my.domain.de/job/My%20Strange%20Build%20Artifacts/buildWithParameters?token=My-token-build&VERSION=1.2.3.10373"
    
por Torben - TSC 16.12.2016 / 19:26

0 respostas