문제
넌트 스크립트 전체에서 다양한 지점에서 명령 창의 제목을 변경하고 싶습니다.
작업을 사용하여 '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
명령.