我希望能夠在整個我的NAnt腳本的各個點更改命令窗口的標題。從南特更改命令(CMD)窗口的標題
我試圖用任務來調用「稱號myTargetName」,但它給了我下面的錯誤:
'title' failed to start.
The system cannot find the file specified
有沒有辦法做到這一點嗎?提前致謝!
我希望能夠在整個我的NAnt腳本的各個點更改命令窗口的標題。從南特更改命令(CMD)窗口的標題
我試圖用任務來調用「稱號myTargetName」,但它給了我下面的錯誤:
'title' failed to start.
The system cannot find the file specified
有沒有辦法做到這一點嗎?提前致謝!
您可以在自定義任務中設置控制檯標題。如果任務在script中定義,則構建文件是自包含的。
一旦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>
你可以使用一個命令或批處理文件來運行含有此惡性腳本:
title %1
%NANT_PATH%\nant.exe %1
這應該工作:
<exec>title Step One</exec>
<!-- Do some stuff -->
<exec>title Step Two</exec>
這將使用常規cmd.exe
命令。
不,抱歉 - 我從NAnt收到此錯誤... '程序'是
你是對的。 `title`不是可執行文件,而是`cmd.exe`識別的特殊命令。 – 2009-07-31 15:01:24
如果你編譯這個小程序的控制檯應用程序:
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任務程序集可被發現。
不好 - 試過這個,它不起作用,對不起。 – 2010-02-23 15:35:31
試試這個:
' 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'具有三個'exec',則需要三個'exit'命令才能返回到原始cmd.exe外殼,想到它像彈出cmd.e XE出棧的惡性腳本的時間...
編輯#2:按照佈雷特的評論...只是一個想法 - 爲什麼不這樣做這樣....
<exec>cmd /k title one </exec> <exec>exit</exec>
設置窗口標題後立即添加'exit'命令...?
希望這會有所幫助, 最好的問候, 湯姆。
我如何採取您的建議是,cmd文件更改標題,然後運行特定的腳本。你是這個意思嗎? 我的意思是,在Cmd窗口中運行NAnt腳本期間,我希望能夠以即席爲基礎重新命名運行窗口的標題,作爲指示系統腳本的哪一部分目前正在處理中,因爲每個腳本可以運行5分鐘左右。 – 2009-07-31 14:55:09
您可以創建cmd或批處理,一個接一個地構建您想要的目標,並在每個新的目標調用中設置標題。我不得不承認,但應該運行沒有任何額外的要求。 – zoidbeck 2009-07-31 19:02:19