在管道Bat命令中引用Jenkins环境变量

在管道Bat命令中引用Jenkins环境变量,jenkins,jenkins-pipeline,jenkins-groovy,Jenkins,Jenkins Pipeline,Jenkins Groovy,我尝试在嵌入env.JOB\u BASE\u NAME变量时运行此命令,如下所示: bat '"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\MSBuild\\15.0\\Bin\\amd64\\MSBuild.exe" "C:\\jenkins\\workspace\\${env.JOB_BASE_NAME}\\MySolution.sln"' 我尝试了建议的答案,但那个解决方案对我不起作用。如果按照另

我尝试在嵌入env.JOB\u BASE\u NAME变量时运行此命令,如下所示:

bat '"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\MSBuild\\15.0\\Bin\\amd64\\MSBuild.exe" "C:\\jenkins\\workspace\\${env.JOB_BASE_NAME}\\MySolution.sln"'
我尝试了建议的答案,但那个解决方案对我不起作用。如果按照另一个答案中的建议删除单引号,则会出现以下错误:

'C:\Program' is not recognized as an internal or external command, program or batch file.
大概是因为“程序”和“文件”之间的空间


我尝试过用三重双引号和其他各种解决方案来包装它,但没有成功。做这件事的正确方法是什么?

我自己想出来的。我必须用三个双引号,然后在命令周围加上双引号

bat  """ "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\MSBuild\\15.0\\Bin\\amd64\\MSBuild.exe" "C:\\jenkins\\workspace\\${env.JOB_BASE_NAME}\\MySolution.sln" """

尝试使用胡萝卜符号转义sapces,例如:C:\>cd Documents^和^Settings。因此,在您的例子中,C:\\ProgramFiles^(x86)。另一种解决方案是,您可以将它们放在双引号之间,例如/;C:\\\“程序文件(x86)”\\etc..@mbn217这主意不错,但不起作用。不幸的是,仍然出现相同的错误