我想在Jenkins Freestyle Job中的PowerShell构建步骤中使用一个变量来触发另一项工作。
因此我需要它作为环境变量。 This tutorial表明我必须创建可以使用的env.properties文件。但我无法在我的脚本中创建一个 。有这一部分:
Write-Host "TEST1"
"CPName_VAR=$projectCP" | Out-File env.properties -Encoding ASCII
Write-Host "TEST2"
控制台打印出TEST1
和TEST2
,但是文件的创建似乎被绕过了。有什么不对吗?
我也尝试过:
Write-Host $projectCP > env.properties
没有错误。但是envinject插件(用于从属性文件中注入参数)会在作业结束时抛出错误,因为“没有这样的文件”。
如果我直接在PowerShell IDE中执行命令,一切正常,属性文件将在我的主目录中创建。
答案 0 :(得分:2)
我解决了。我完全不知道为什么,但如果我在PowerShell脚本的最后执行命令"CPName_VAR=$projectCP" | Out-File env.properties -Encoding ASCII
,一切正常,我的文件就会被创建。
答案 1 :(得分:0)
运行Out-File
时是否收到错误?如果是这样,错误是什么?如果没有,env.properties
是否已存在的文件?
这是我要检查的...如果该文件尚不存在,请检查它是否是在当前工作目录中创建的(在命令运行时在您的提示中列出的内容,默认为您的用户个人资料路径[ie C:\Users\rkimble
])。
如果它已创建,请说明目标目标的完整路径,而不仅仅是文件名(这应该是默认练习,尤其是在作业中运行命令时)。
如果文件 DOES 已经存在,并且您只想用该字符串完全覆盖它,那么将-Force
标志添加到Out-File
命令:
"CPName_VAR=$projectCP" | Out-File env.properties -Encoding ASCII -Force
如果文件 DOES 已经存在,并且您想将该字符串添加到其末尾,则将-Append
标志添加到Out-File
命令中:
"CPName_VAR=$projectCP" | Out-File env.properties -Encoding ASCII -Append