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
Batch file Jenkins声明性管道:如何在Windows bat命令中使用传递到函数中的参数?_Batch File_Jenkins_Groovy_Arguments_Jenkins Declarative Pipeline - Fatal编程技术网

Batch file Jenkins声明性管道:如何在Windows bat命令中使用传递到函数中的参数?

Batch file Jenkins声明性管道:如何在Windows bat命令中使用传递到函数中的参数?,batch-file,jenkins,groovy,arguments,jenkins-declarative-pipeline,Batch File,Jenkins,Groovy,Arguments,Jenkins Declarative Pipeline,我有一个管道,在其中我定义了一个接受字符串参数的函数,然后尝试在包含bat命令的步骤中使用该函数/参数。我一辈子都不知道如何在bat命令中公开这些字符串参数 下面是函数- // publish step def publish(String projectName, String publishProfile) { echo "${projectName}" echo "${publishProfile}" bat ''' sqlpackage.exe /Action:P

我有一个管道,在其中我定义了一个接受字符串参数的函数,然后尝试在包含bat命令的步骤中使用该函数/参数。我一辈子都不知道如何在bat命令中公开这些字符串参数

下面是函数-

// publish step
def publish(String projectName, String publishProfile) {
    echo "${projectName}"
    echo "${publishProfile}"
    bat ''' sqlpackage.exe /Action:Publish /SourceFile:%WORKSPACE%\\%projectName%\\bin\\Debug\\%projectName%.dacpac /Profile:%WORKSPACE%\\%projectName%\\Publish\\%publishProfile% '''
}

在控制台输出中,我可以看到传入的正确的projectName和publishProfile被回显。%工作区%在bat命令中正确显示。但是,%projectName%和%publishProfile%只是空白。我尝试了很多双引号、单引号等的组合。如何在bat命令中公开它们?

最终解决了这个问题。在bat命令中使用“”(双引号)而不是“”,可以公开参数。然后,我在bat命令中使用set将它们设置为变量,这样它们就可以很好地处理文件路径/文件扩展名

def publish(String projectName, String publishProfile) {
    bat """ set PROJNAME=$projectName
    set PUBPROF=$publishProfile
    \"C:\\Program Files (x86)\\Microsoft SQL Server\\140\\DAC\\bin\\sqlpackage.exe\" /Action:Publish /SourceFile:%WORKSPACE%\\%PROJNAME%\\bin\\Debug\\%PROJNAME%.dacpac /Profile:%WORKSPACE%\\%PROJNAME%\\Publish\\%PUBPROF% """
}