windows - Jenkins miljøvariabler opfanger stray kommaer, hvordan forhindrer jeg dette?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et problem med at bruge jenkins miljøvariabler. Jeg skriver en batch-fil, der kan kaldes, når en build køres, der vil skrive en fil i build-biblioteket med information om, hvordan filerne blev genereret. (gren, dato tid, git revision osv.)


Batchfilen tager kun nogle af jenkins miljøet vars via kommandolinjeparametre og skriver dem til en tekstfil. Her er batchopkaldet, jeg laver via Execute Shell-trin under opbygning:


c:\temp\~BuildStamper.bat "$GIT\_COMMIT", "$BUILD\_URL", "$JOB\_NAME",  "$BUILD\_ID", "$WORKSPACE", "$GIT\_BRANCH", "$BUILD\_USER"


Jeg har bemærket, at for argumenter, der indeholder hvidt rum, tilføjes et ekstra komma i de citerede afgrænsere. Prøvelinie fra genereret tekstfil:


Jobnavn: 'Afgangsstyrelsen Build and Publish,'


Jeg ved, at det ikke er problem med den behandling, jeg laver inden for batchfilen, fordi jeg kan se de værdier, der sendes i batchfilen i jobloggene, som Jenkins genererer, og kommaerne findes i værdierne, når de er bestået til min batch-fil.


Det ser næsten ud som om Jenkins fejlagtigt splitter en komma afgrænset streng, når den møder strenge med hvidt rum, men jeg kunne ikke finde noget på nettet om et problem med Jenkins af den slags.


Noget andet set dette? Gør jeg noget galt? Jeg forsøgte at forlade den vars til Jenkins sans citater, men så begynder batchfilen at læse hvert ord som et særskilt argument.

Bedste reference


KeepCalmAndCarryOn nailed det, kommaer er helt fremmede.