Jenkins Powershell передает скрипт из переменной - PullRequest
0 голосов
/ 12 марта 2019

У меня есть шаг Дженкинса, определенный следующим образом:

script {
        def cmd =  ' & "' + env.WORKSPACE + '\\SpearsLoad\\Scripts\\DeploySSISPackage.Ps1 -server ' + dbServer + ' -ProjectFilePath ' + env.WORKSPACE + '\\SpearsLoad\\bin\\' + buildConfig + '\\SpearsLoad.ispac"'
        println cmd
        def msg = powershell(returnStdout: true, script: ' & "' + env.WORKSPACE + '\\SpearsLoad\\Scripts\\DeploySSISPackage.Ps1 -server ' + dbServer + ' -ProjectFilePath ' + env.WORKSPACE + '\\SpearsLoad\\bin\\' + buildConfig + '\\SpearsLoad.ispac"')
        println msg
        }

на println cmd я получаю именно то, что мне нужно:

c:\workspace\Spears_master\SpearsLoad\Scripts\DeploySSISPackage.Ps1 -server LONSQLLD01\L14D1 -ProjectFilePath c:\workspace\Spears_master\SpearsLoad\bin\development\SpearsLoad.ispac

Я попытался вставить выражение в команду powershell:

 powershell(returnStdout: true, script: ' & "' + env.WORKSPACE + '\\SpearsLoad\\Scripts\\DeploySSISPackage.Ps1 -server ' + dbServer + ' -ProjectFilePath ' + env.WORKSPACE + '\\SpearsLoad\\bin\\' + buildConfig + '\\SpearsLoad.ispac"')

, который не работает, как и при использовании переменной

powershell(returnStdout: true, script: cmd)

В обоих случаях я получаю: не распознается как имя командлета, функции, файла сценария или работоспособной программы.

Это похоже на проблему спасения, но я заблудился - кто-нибудь может направить меня в правильном направлении

1 Ответ

2 голосов
/ 12 марта 2019

Шаблон амперсанда & "somecommand" <arguments> обычно используется в powershell, когда somecommand содержит пробелы.

Обратите внимание, что аргументы не должны быть в двойных кавычках, как в вашем примере.Помещая аргументы в кавычки, вы заставляете powershell интерпретировать аргументы как часть имени команды, что не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...