2

NAnt スクリプトのさまざまな時点でコマンド ウィンドウのタイトルを変更できるようにしたいと考えています。

タスクを使用して「title myTargetName」を呼び出そうとしましたが、次のエラーが表示されます。

「タイトル」を開始できませんでした。

The system cannot find the file specified

これを行う方法はありますか?前もって感謝します!

4

5 に答える 5

2

カスタム タスクでコンソール タイトルを設定できます。タスクがスクリプトで定義されている場合、ビルド ファイルは自己完結型です。

nant が完了すると、コンソールのタイトルが元に戻ります。

<project default="title">

    <target name="title">
        <consoletask title='step 1'/>
        <sleep minutes="1" />
        <consoletask title='step 2'/>
        <sleep minutes="1" />
        <consoletask title='step 3'/>
        <sleep minutes="1" />
    </target>

    <script language="C#">
        <code>
            [TaskName("consoletask")]
            public class TestTask : Task
            {
                private string title;

                [TaskAttribute("title", Required=true)]
                public string Title
                {
                    get { return title; }
                    set { title = value; }
                }

                protected override void ExecuteTask() {
                    System.Console.Title = title;
                }
            }
        </code>
    </script>
</project>
于 2010-02-24T05:05:02.613 に答える
1

この小さなプログラムをコンソールアプリとしてコンパイルする場合:

namespace SetTitle
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            System.Console.Title = string.Join(" ", args);
        }
    }
}

次に、これは機能します:

<exec>SetTitle.exe "Step One"</exec>

<!-- Do some stuff -->

<exec>SetTitle.exe "Step Two"</exec>

カスタムNAntタスクでも同じことができますが、関連する作業はより複雑になり、スクリプトの実行中にNAntタスクアセンブリを検出可能にする必要があります。

于 2009-07-31T15:04:56.407 に答える
1

これを試して:

' コマンド プロンプトで
タイトルフーバー

' タイトルは引用符なしで 'foobar' となるはずです

' では、これを発行してください...
cmd /k fubar

' タイトルは引用符なしで 'fubar' となるはずです

したがって、次のように変更する必要があると思います。

<exec>cmd /k タイトル 1 </exec>

編集:スクリプトの最後で、コマンドを呼び出してexit、コマンド ライン プロセッサのネストされたレベルを終了しcmd.exeます...「cmd /k」に対して 3 つの「exec」があるとします。順番に 3 つの「exit」コマンドが必要になります。元の cmd.exe シェルに戻るには、nant スクリプトの実行中にスタックから cmd.exe をポップするようなものと考えてください...

編集#2:ブレットのコメントによると...ただの考え-このようにしてみませんか....

<exec>cmd /k タイトル 1 </exec>
<exec>終了</exec>

ウィンドウのタイトルを設定した直後に「exit」コマンドを追加する...?

これがお役に立てば幸いです。よろしくお願いします、トム。

于 2010-02-23T16:16:30.360 に答える
0

cmd またはバッチ ファイルを使用して、これを含む nant スクリプトを実行できます。

title %1 
%NANT_PATH%\nant.exe %1
于 2009-07-31T14:18:01.820 に答える
0

これはうまくいくはずです:

<exec>title Step One</exec>

<!-- Do some stuff -->

<exec>title Step Two</exec>

これは通常のcmd.exeコマンドを使用します。

于 2009-07-31T14:18:31.430 に答える