Mini C# Lab 1.4 Release

The primary new feature of Ver 1.4 is batch mode!

Now you can run Mini C# Lab program as a scheduled task, no UI interactivity is needed. Here are some batch argument examples:

  • Load and execute x:\temp\test.cs, use the output to overwrie x:\temp\log.txt
    MiniCSharpLab /batch /cs:x:\temp\test.cs /out:x:\temp\log.txt /overwrite
  • Load and execute "c:\some path\test.cs", append the output to LogyyyyMMdd.txt (the file name will be change according to System.DateTime.Now)
    MiniCSharpLab /batch /cs:""c:\some path\test.cs"" /out:Log{yyyyMMdd}.txt
  • Load and execute x:\aa.cs, append the output to x:\aa.txt, if execution time is longer than 1200 seconds, program will be terminated.
    MiniCSharpLab /batch /cs:x:\aa.cs /out:x:\aa.txt /timeout:1200
  • Load and execute x:\aa.vb as .NET 3.5 program, append the output to x:\aa.txt
    MiniCSharpLab /batch /vb:x:\aa.vb /out:x:\aa.txt /v35
There are also minor bug fix and improvement:
  1. Fix: Thread.Sleep for 0.5" after execution to avoid output loss (I hope it works)
  2. Add: Add execution duration display

【中文說明】

其實1.4版已經寫出來蠻久了,上回的黑暗盃程式魔人賽裡就已經偷跑過了。今天剛好跟同事提到要寫簡單的Script跑排程,索性一不做二不休,把它Release到CodePlex網站上,想參考程式的人也可以在CodePlex找到原始碼。

1.4版最大的特色是支援批次無UI的方式執行,這個之前網友Ammon也有提過,剛好也是我自己不少排程作業上的需求。執行參數如下:

  • 載入並執行x:\temp\test.cs, 輸出結果覆寫到x:\temp\log.txt
    MiniCSharpLab /batch /cs:x:\temp\test.cs /out:x:\temp\log.txt /overwrite
  • 載入並執行"c:\some path\test.cs", 輸入結果附加到LogyyyyMMdd.txt檔案後端(檔名會隨執行時間變化)
    MiniCSharpLab /batch /cs:""c:\some path\test.cs"" /out:Log{yyyyMMdd}.txt
  • 載入並執行x:\aa.cs, 輸出結果附加到x:\aa.txt。若執行時間超過1200秒,會被強制中止
    MiniCSharpLab /batch /cs:x:\aa.cs /out:x:\aa.txt /timeout:1200
  • 載入x:\aa.vb,視為.NET 3.5程式執行,輸出結果附加到x:\aa.txt
    MiniCSharpLab /batch /vb:x:\aa.vb /out:x:\aa.txt /v35

另外還有兩個小修改:

  • 修正: 加入0.5秒Thread.Sleep延遲,防止輸出結果遺失(希望有效)
  • 加入執行時間顯示功能
  • 如發現Bug或有功能建議,歡迎在此留言回饋。(但不一定能即時修正或擴充,請見諒!)

    歡迎推文分享:
    Published 05 March 2010 09:30 PM 由 Jeffrey
    Filed under: , ,
    Views: 12,623



    意見

    # Will 保哥 said on 07 March, 2010 01:07 AM

    幾點建議:

    1. 我覺得應該有個直接輸出到 Console 的選項,不一定要輸出到檔案,這樣就可以做為 CSharp Script Interpreter 來用! ^^

    2. 加上文字說明的 MiniCSharpLab14.exe /? 選項,可顯示指令列參數的說明。

    3. 輸出檔案的地方每次都會有以下資訊,不知道可否提供選項排除這些資訊在檔案中出現。

    **************************************************

    [Mini C# Lab Batch Mode] 2010/03/07 16:02:14

    Built successfully in 118ms!

    Prepare to run...

    ==================================================

    # S said on 07 March, 2010 08:42 PM

    Bug report

    不知道是 Bug 還是操作有誤

    1. 開啟 Mini C# Lab 1.4

    2. 選擇 Copy as HTML

    3. 勾選 Embed Css

    4. 選擇 Copy 或 Copy & Close

    5. 出現 Exception 畫面 訊息如下

    System.ArgumentNullException: 值不能為 null。

    參數名稱: stream

      於 System.IO.StreamReader..ctor(Stream stream, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize)

      於 System.IO.StreamReader..ctor(Stream stream)

      於 Manoli.Utils.CSharpFormat.SourceFormat.GetCssString() 於 C:\Users\jeffrey\Documents\Visual Studio 2008\Projects\MiniCSharpLab\MiniCSharpLab\Formatter\SourceFormat.cs: 行 150

      於 Manoli.Utils.CSharpFormat.SourceFormat.FormatCode(String source, Boolean lineNumbers, Boolean alternate, Boolean embedStyleSheet, Boolean subCode) 於 C:\Users\jeffrey\Documents\Visual Studio 2008\Projects\MiniCSharpLab\MiniCSharpLab\Formatter\SourceFormat.cs: 行 193

      於 Manoli.Utils.CSharpFormat.SourceFormat.FormatCode(String source) 於 C:\Users\jeffrey\Documents\Visual Studio 2008\Projects\MiniCSharpLab\MiniCSharpLab\Formatter\SourceFormat.cs: 行 126

      於 MiniCSharpLab.FormatCodeHtml.btnCopy_Click(Object sender, EventArgs e) 於 C:\Users\jeffrey\Documents\Visual Studio 2008\Projects\MiniCSharpLab\MiniCSharpLab\FormatCodeHtml.cs: 行 78

      於 MiniCSharpLab.FormatCodeHtml.btnClose_Click(Object sender, EventArgs e) 於 C:\Users\jeffrey\Documents\Visual Studio 2008\Projects\MiniCSharpLab\MiniCSharpLab\FormatCodeHtml.cs: 行 89

      於 System.Windows.Forms.Control.OnClick(EventArgs e)

      於 System.Windows.Forms.Button.OnClick(EventArgs e)

      於 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

      於 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

      於 System.Windows.Forms.Control.WndProc(Message& m)

      於 System.Windows.Forms.ButtonBase.WndProc(Message& m)

      於 System.Windows.Forms.Button.WndProc(Message& m)

      於 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

      於 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

      於 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    # Johnny said on 09 March, 2010 02:29 AM

    版本是 1.4, About 寫的卻是 1.3

    # Terry said on 05 January, 2012 09:50 PM

    建議可以加上傳入自定參數的處理,這樣就可以先一步取代Batch

    # dw4dev said on 24 November, 2017 09:53 PM

    黑大您好:

    感謝您無私分享這好工具,但因為 CodePlex 即將關站,

    所以小弟就將您分享的 CODE 先放上 GitHub 中,

    必免這優良工具消失無形 ^^ ,github.com/.../Mini-CSharp-Lab

    若您有覺得不妥或是有侵犯到您,再請來信告知。

    謝謝您。

    # Jeffrey said on 25 November, 2017 06:04 AM

    to dw4dev, OK的,這個專案是很早期的作品,已荒廢多年(後來多改用LINQPad),很高興還有人觀注並願意維護~ :P

    你的看法呢?

    (必要的) 
    (必要的) 
    (選擇性的)
    (必要的) 
    (提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

    5 + 3 =

    搜尋

    Go

    <March 2010>
    SunMonTueWedThuFriSat
    28123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910
     
    RSS
    創用 CC 授權條款
    【廣告】
    twMVC

    Tags 分類檢視
    關於作者

    一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

    文章典藏
    其他功能

    這個部落格


    Syndication