Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何转换a';bat&x27;来自Jenkinsfile的指令,用于在脚本控制台中执行?_Jenkins_Jenkins Pipeline - Fatal编程技术网

如何转换a';bat&x27;来自Jenkinsfile的指令,用于在脚本控制台中执行?

如何转换a';bat&x27;来自Jenkinsfile的指令,用于在脚本控制台中执行?,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我的Jenkins文件中的“bat”脚本没有明显的原因而失败。我已经在代理机器上实际运行了它,所以现在我想在Jenkins下手动运行它-通过脚本控制台。如何将这一行转换为完全等效的控制台命令 bat 'set \"ANDROID_HOME=%USERPROFILE%\\AppData\\Local\\Android\\Sdk\" && gradlew.bat assembleDebug' 我试过这个,运气不好,我可能没有正确地逃避某些东西,可能是cmd/c命令的内部引号太多了

我的Jenkins文件中的“bat”脚本没有明显的原因而失败。我已经在代理机器上实际运行了它,所以现在我想在Jenkins下手动运行它-通过脚本控制台。如何将这一行转换为完全等效的控制台命令

bat 'set \"ANDROID_HOME=%USERPROFILE%\\AppData\\Local\\Android\\Sdk\" && gradlew.bat assembleDebug'
我试过这个,运气不好,我可能没有正确地逃避某些东西,可能是
cmd/c
命令的内部引号太多了

println "cmd \\c \"set \"ANDROID_HOME=%USERPROFILE%\\AppData\\Local\\Android\\Sdk\" && gradlew.bat assembleDebug\" ".execute().text

cmd\c
应该是
cmd/c
,您也可以像这样返回命令的输出:

"cmd /c \"set \"ANDROID_HOME=%USERPROFILE%\\AppData\\Local\\Android\\Sdk\" && gradlew.bat assembleDebug\"".execute().text
无论如何,脚本控制台只是确定管道步骤中运行时问题的第一步,因为您只知道命令本身是否工作


接下来,您希望将问题隔离在一个单独的管道中,这样您就可以解决CPS和沙盒问题。有趣的东西。如果不是因为你改变了诸如“代码>”、“B”C‘< /代码>到“代码>”、“B”C“”,那么我不会感到惊讶。而在第一种情况下,你有“<代码> b <代码> >引用,在第二种情况下,这是<代码> A <代码> >代码> C >代码>。我想我引用了
cmd\c
的参数是错误的,Groovy部分本身可能是正确的,因为所有的内部引号都被转义了。事实上
cmd\c
应该是
cmd/c
,您也可以通过将
文本
附加到
执行()
来返回命令输出。根据我的经验,测试管道中失败步骤的最佳方法是将其复制到临时管道以隔离问题,因为脚本控制台没有集成CPS或沙盒您的代码。@Torth:谢谢,这两个要点都很好,我认为是沙盒阻止了我的脚本正常工作,但我需要做一些实验和尝试,以找出如何使它工作,对吗?完成了。谢谢:)您实际上不需要
println
输出,因为
text
返回一个字符串