3

私は、チーム全体のビルド プロセスを統合する任務を負っています。ビルドサーバー、CI などを含む。

私たちのプロジェクトの構造は、各サブチームが独自のコード ベースの開発を担当するというものです。

時間が経つにつれて、各チームは通常、展開の要件に応じて独自の python/sh/bat/Wix を作成しました。私は、すべてのビルドを 1 つの主要な Team City システムに統合する任務を負っています。

問題は、多くのビルド スクリプト (bat ファイル) に UI プロンプトや PAUSE などのコマンドが含まれていることです。

スクリプトの実行前/実行中にこれらのコマンドをおそらく抑制する方法を知っている人はいますか?

バッチ ファイルの前処理と一時停止の削除/REM を検討しましたが、それは理想的ではありません。+- 350 の個々のプロジェクトが +- 35 の HG リポジトリ (それ自体が 4 つの都市に分散) に分散しているためです。

理想的には、ビルド前のクリーンアップを実行したくありません。

これを行うための夕食の魔法のトリックを知っている人はいますか、それとも各ビルドファイルに変更を加える必要がありますか?

4

2 に答える 2

12

入力を nul: にリダイレクトすることで、入力を無効にすることができます<nul yourScrpt.bat。これにより、実質的にすべてのコマンドが無効になりますが、入力を求めるコマンドPAUSEも無効になります。SET /P

他のスクリプトを呼び出すマスター バット スクリプトの入力を無効にすると、子スクリプトは無効な入力を継承します。

于 2013-09-21T16:20:46.487 に答える
-1

まず第一に、コマンドを抑止する適切な方法はありません。PAUSEただし、非常に簡単な方法でそれを行うことができます。この方法は、cmd.exe ファイルを変更することでPAUSE構成されます。つまり、バイナリ 16 進エディタを使用して cmd.exe ファイルをロードし、コマンド (2 バイトの UNICODE 文字でエンコードされている) を探し、別の方法で変更します。コマンドを実行し、cmd.exe ファイルを保存します。その後、PAUSEコマンドは機能しなくなります。

はい、そうしない理由がいくつかあることは知っています。ただし、私は質問に答えているだけです。OP は、このメソッドがニーズに役立つかどうかを評価する責任があります。

于 2013-09-21T19:56:04.207 に答える