2017-01-23 8 views
1

私はTeamCityのビルド後のステップの1つとしてPowerShellスクリプトを実行しています。そして、ある時点で、後の手順のプレースホルダとして空のファイルを作成しようとしています。私が始めたコードは:PowerShellがTeamCityでプロンプトを表示したい

New-Item $MyPathAndFileName -Force 

私のマシンではISEでうまくいきました。私は次で終わるために自分のコードに追加しました

Windows PowerShell is in NonInteractive mode. Read and Prompt functionality is not available. 

:しかしチームシティーでそれを実行するとのビルドログエントリで失敗する全ビルドステップ(したがって、ビルド構成)を引き起こす

if((Test-Path $MyPathAndFileName) -ne 0) 
    {Remove-Item $MyPathAndFileName -Force} 
New-Item $$MyPathAndFileName -Force -Confirm:$false -ErrorAction SilentlyContinue -WarningAction SilentlyContinue -InformationAction SilentlyContinue 

常に新しいアイテムの行は失敗します。

私の質問は、私はどちらか

a)のPowerShellは、新しいを作成する)ので、私は障害-見つけることができます間違っているものを表示しようとし?,または

Bれるプロンプト何かを書くために得ることができますですプロンプトなしの項目?

+0

アカウントのチームチームが稼働していて、権限がない可能性はありますか? – TravisEz13

+0

私はあなたの質問のポイントを見ることができますが、同じスクリプトの他の部分とビルド設定の実際のコンパイルステップはすでに問題のフォルダに書き込んでいます – GavTheGuru

+0

提案したように '-confirm:$ false'を追加しましたか? ](http://stackoverflow.com/questions/16580723/powershell-in-noninteractive-mode)? – sarbis

答えて

0

この例では、TeamCity Serverのエージェントの1つが以前のバージョンのPowerShellを実行していて、-Typeパラメータの名前が "file"であることが予想されていました。これはその行のために機能しましたが、そのエージェントはzipファイルを扱っていた後のスクリプト行に問題がありました。

PowerShellのバージョンをアップグレードできなかったため、一時的な回避策をビルド構成として設定しました。ビルドを正常に実行するために必要な特定のエージェントに名前を付けるエージェント要件。

しかし、結論として、TeamCityサーバー上で実行されているPowerShellの問題がユーザーの勝利を促そうとしています。ビルド・ログにプロンプ​​トを書き込む方法は、インテリジェントな障害検出を容易にします。

ありがとうございます。

関連する問題