2017-05-10 15 views
3

Jenkins Freestyle Job内のPowerShellビルドステップで変数を使用して、別のジョブをトリガーしたい。したがって、私は環境変数としてそれを必要とします。 Thisチュートリアルでは、使用できるenv.propertiesファイルを作成する必要があることを示しています。しかし、私はこの部分がある私のスクリプト内に作成することはできませんよ。環境変数としてpowershell変数を使用する

Write-Host "TEST1" 
"CPName_VAR=$projectCP" | Out-File env.properties -Encoding ASCII 
Write-Host "TEST2" 

コンソールはTEST1TEST2を出力しますが、ファイルの作成はバイパス取得するようです。何か間違っていますか?

編集:私も試してみました:

Write-Host $projectCP > env.properties 

EDIT2:エラーはありません。しかし、私がプロパティファイルからパラメータを注入するのに使うenvinjectプラグインは、 "そのようなファイルはありません"ので、ジョブの最後にエラーを表示します。

EDIT3:正常に動作し、プロパティファイルがホームディレクトリに作成されます

+0

ディレクトリにファイルを作成できましたか? - >許可の問題? – Moerwald

+0

ログインしたjenkinsユーザーには完全な管理者権限があります。私は言うことを忘れていました。エラーメッセージはありません –

+0

'Out-File'に' -Verbose'を追加しました。 '$ Error'もチェックしてください。 '-Verbose'で' Out-File'を呼び出す前に '$ Error.Clear()'を実行してください。多分あなたはいくつかの追加情報を得るでしょう... – Moerwald

答えて

2

私はそれを解決しました。なぜ私は絶対に考えていませんが、私がpowershellスクリプトの最後に"CPName_VAR=$projectCP" | Out-File env.properties -Encoding ASCIIというコマンドを実行すると、すべて正常に動作し、ファイルが作成されます。ありがとうございます

0

Out-Fileを実行するとエラーが発生しますか?もしそうなら、エラーは何ですか?そうでなければ、env.propertiesはすでに存在するファイルですか?

ファイルがまだ存在しない場合は、現在の作業ディレクトリに作成されているかどうかを確認します(コマンドの実行時にプロンプ​​トに表示されているものがあれば、デフォルトあなたのユーザーのプロフィールパス[すなわちC:\Users\rkimble]に)。

作成された場合は、ファイル名ではなく、目的の宛先への完全なパスを指定します(これは、特にジョブ内でコマンドを実行する場合にはデフォルトの方法です)。

、あなたのOut-Fileコマンドに-Forceフラグを追加し、ファイルはすでに存在して、あなたは完全にだけ、その文字列で上書きしたい場合:

"CPName_VAR=$projectCP" | Out-File env.properties -Encoding ASCII -Force

ファイルがない場合が既に存在していて、その文字列を最後に追加したい場合は、 の代わりにコマンドに-Appendフラグを追加してください。"CPName_VAR=$projectCP" | Out-File env.properties -Encoding ASCII -Append

これが役に立ちます。

+0

特定のエラーはありません(私は私の質問にいくつかの行を追加しました)また、ジェンキンマスターサーバーもありますが、ファイルが全く作成されていません –