我刚刚开始使用 Jenkinsfile 管道语法,所以这可能是我在功能指南中忽略的内容。我有一个带有脚本的步骤,它将文本块作为powershell脚本运行,它可以正常工作,但我想用前导空格格式化文件以使所有内容都对齐但有实际执行的代码修剪空白。主要是我的痛点是“@ 行,powershell 要求它没有前导空格,所以它独自一人坐在外面。
script {
def ps_out = powershell(returnStdout: true, script: '''
$pass = "$env:Remoting_Password" | ConvertTo-SecureString -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PsCredential("$env:Remoting_Username",$pass)
$scriptBlock = @"
if (-Not(Get-WmiObject -Class Win32_Service -Filter "Name=\'$env:ServiceName\'"))
{
If ((Get-Service $env:ServiceName).Status -eq 'Running') {
Stop-Service -Name $env:ServiceName
}
}
"@
$sb = [scriptblock]::Create($scriptBlock)
Write-Output "--Script block Start--"
Write-Output $sb.ToString()
Write-Output "--Script block End--"
$sess = New-PSSession -ComputerName $env:TargetServer -Credential $Cred
Invoke-Command -Session $sess -ScriptBlock $sb
Remove-PSSession -Session $sess
''')
println ps_out
}