문제

넌트 스크립트 전체에서 다양한 지점에서 명령 창의 제목을 변경하고 싶습니다.

작업을 사용하여 'Title MyTargetName'을 호출하려고했지만 다음과 같은 오류가 발생합니다.

'제목'은 시작하지 못했습니다.

The system cannot find the file specified

이것을 할 수있는 방법이 있습니까? 미리 감사드립니다!

도움이 되었습니까?

해결책

사용자 정의 작업에서 콘솔 제목을 설정할 수 있습니다. 작업이 a에 정의 된 경우 스크립트, 빌드 파일은 자체적으로 포함되어 있습니다.

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>

다른 팁

이 작은 프로그램을 콘솔 앱으로 컴파일하는 경우 :

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>

당신은 맞춤형 과제로 똑같이 할 수 있지만, 관련된 작업은 더 복잡 할 것이며 스크립트 실행 중에 넌트 작업 어셈블리를 발견 할 수있게해야합니다.

이 시도:

' In your command prompt
title foobar

' The title now should say 'foobar' without quotes

' Now issue this...
cmd /k fubar

' The title now should say 'fubar' without quotes

그래서 나는 당신이 이것을 좋아하도록 변경해야한다고 생각합니다.

<exec>cmd /k title one </exec>

편집하다: 스크립트가 끝나면 exit 중첩 된 레벨을 종료하도록 명령 cmd.exe 명령 줄 프로세서 ... 'cmd /k'에 대해 3 개의 'exec'가 있다고 가정하면 원래 cmd.exe 쉘로 돌아가려면 3 개의 '종료'명령이 필요합니다. cmd.exe를 터뜨리는 것처럼 생각하십시오. Nant 스크립트 기간 동안 스택을 벗어나 ...

#2 편집 : Brett의 의견에 따라 ... 그냥 생각 - 왜 이렇게하지 않겠습니까 ....

<exec>cmd /k title one </exec>
<exec>exit</exec>

창 제목을 설정 한 직후 '종료'명령을 추가하십시오 ...?

이것이 도움이되기를 바랍니다.

CMD 또는 배치 파일을 사용하여 다음과 같은 NANT 스크립트를 실행할 수 있습니다.

title %1 
%NANT_PATH%\nant.exe %1

이것은 작동해야합니다 :

<exec>title Step One</exec>

<!-- Do some stuff -->

<exec>title Step Two</exec>

이것은 규칙을 사용합니다 cmd.exe 명령.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top