#1
|
|||
|
|||
Unexpanded macro value
I am trying to unexpand the macro value. A macro with this value is parsed and i want to retain its value.
Code:
"BUILD_URL=http://jenkins/job/Test%20New%20NUnit%20Test%20Script/lastBuild" I tried to do it this way without avail. Code:
Option Explicit Dim build_url build_url = "%BUILD_URL%" If Len(build_url) > 0 Then build_url = Replace( build_url, "%%", "%%%%" ) SetTemporaryMacroValue "BUILD_URL", build_url <--- this is a subfunction i use in the script End If What i need is the opposite of http://www.kinook.com/Forum/showthread.php?t=1233 |
#2
|
|||
|
|||
What do you mean by 'a macro with this value is parsed'? How was the BUILD_URL macro initialized? Literal % characters in the macro value should be escaped when creating the macro. The vbld_EscapeString system script function can be used for this.
http://www.kinook.com/VisBuildPro/Ma...scriptmisc.htm To assign a macro value to another macro value, just copy the raw value without expanding. See the attached sample. |
#3
|
|||
|
|||
The value is parsed as an environment variable when initiated by a jenkins job.
See https://wiki.jenkins-ci.org/display/...nmentVariables The job build command: Code:
VisBuildcmd.exe "BUILD_URL=%BUILD_URL%" /mta /b NUnitTest.bld Code:
VisBuildcmd.exe "BUILD_URL=http://jenkins/job/Test%20New%20NUnit%20Test%20Script/lastBuild" /mta /b NUnitTest.bld Code:
Eg: http://jenkins/job/TestNewNUnitTestScript/ - OK Eg: http://jenkins/job/Test New NUnit Test Script/ - Still OK, but will be escaped to: http://jenkins/job/Test%20New%20NUnit%20Test%20Script/ - Not OK |
#4
|
|||
|
|||
Thanks for the codes, however it still fails with these error:
Code:
Error in Run Script (VBScript) script code at Line 11, Column 1 (http://jenkins/job/Test<Undefined macro 20New>20NUnit<Undefined macro 20Test>20Script/lastBuild) 13-11-2014 14:07:27: Step '4 - use' failed 13-11-2014 14:07:27: Build ended (elapsed = 00:00:00). Code:
http://jenkins/job/Test%20New%20NUnit%20Test%20Script/lastBuild |
#5
|
|||
|
|||
Add a step at the beginning of the project to escape the BUILD_URL macro value that was passed in (see attached).
http://www.kinook.com/VisBuildPro/Ma...ecialchars.htm |
#6
|
|||
|
|||
Epic. Thanks alot for this!
|
#7
|
|||
|
|||
Copy the escaped macro value to another project macro
Is there any way to copy the escaped macro value BUILD_URL to another project macro BUILD_URL3(not a temp macro)?
In the sample attached I tried to do it with a Set macro step but it did not work -the macro BUILD_URL3 has the unescaped value(The next step log macro fails) |
#8
|
|||
|
|||
In a Set Macro action, check the 'Don't expand macros and script' option.
https://kinook.com/VisBuildPro/Manua...acroaction.htm |
#9
|
|||
|
|||
Thanks!And if in the Value field there is the macro I do not want expanded and another macro which I want to have it expanded?
|
#10
|
|||
|
|||
You can't expand partially. It's all or nothing. Escape (double) something that should not be evaluated as a macro.
|
#11
|
|||
|
|||
Thanks.I found another way-I set in the Value field of Set Macro:
[vbld_EscapeString("%BUILD_URL%")] |
|
|