9

ローカルまたはビルド サーバーで実行できるバッチ ファイルを使用して、何らかの興味深い処理を実行できます。@ECHO OFFローカル マシンでは、コンソールがデバッグ文字列でいっぱいにならないようにしたいと考えています。@ECHO ONビルド サーバーでは、障害を調査できるようにしたいと考えています。

ビルド サーバー コンテキストは、特別な環境変数が存在する場合に判別できます ( TEAMCITY_PROJECT_NAME)。だから、私は次のようなことができると思った

IF DEFINED TEAMCITY_PROJECT_NAME @ECHO ON ELSE @ECHO OFF

しかし、それは機能していませんIF。ステートメントが他のすべてと一緒にエコーされます... 何か考えはありますか?

4

4 に答える 4

4

括弧を設定します(ドキュメントを参照...):

IF DEFINED TEAMCITY_PROJECT_NAME (@ECHO ON) ELSE @ECHO OFF
于 2013-06-21T19:00:48.360 に答える
2

まあ、それはECHOデフォルトでオンになっているように見えるので、IFその条件をテストしてもステートメントの出力が得られます。あなたはから始めるべきです

@ECHO OFF

そして、評価する別のステートメントとして条件を追加します

@ECHO OFF && IF DEFINED TEAMCITY_PROJECT_NAME @ECHO ON
于 2013-06-21T17:37:51.853 に答える
2

以前の回答で述べたように、ECHO はデフォルトでオンになっています。同じ動作を実現する別の方法は次のとおりです。

@if "%TEAMCITY_PROJECT_NAME%" == "" @echo off
于 2016-08-08T14:44:31.663 に答える