簡體   English   中英

在C#中編寫批處理腳本的好方法是什么?

[英]What's a good way to write batch scripts in C#?

我想用C#編寫簡單的腳本。 我通常會使用.bat或4NT .btm文件。 復制文件,解析文本,詢問用戶輸入等。 相當簡單,但在批處理文件中執行此操作非常困難(例如,沒有例外)。

我熟悉像AxScript這樣的命令行“腳本”包裝器,這樣我就可以使用它了。 我缺少的是簡單的文件操作框架。 我希望能夠做cd(“..”),copy(srcFile,destFile)類型的功能。

我試過的工具:

  • NANT,我們在構建過程中使用它。 不是一個好的腳本工具。 瘋狂冗長的XML語法並添加一個簡單的函數,您必須編寫擴展程序集。 不能內聯。

  • 電源外殼。 看起來很棒,但我只是無法切換到我的主要shell。 與4NT有太多不同。 無論我做什么都需要從普通的命令提示符運行而不需要特殊的shell來運行它。 PowerShell可以用作腳本執行程序嗎?

  • 的Perl / Python的/紅寶石。 真的討厭學習一種全新的語言和框架來進行批處理文件操作。 無法投入我需要的時間來做這件事。 另外,我們的工具鏈是99%的.NET商店,我真的想利用我們現有的經驗和代碼庫。

是否有框架試圖解決您使用的“在C#中創建批處理文件”的問題?

我希望C#/ .NET的強大功能具有典型cmd.exe shell語言的立即模式類型功能。 我一個人想要這樣的東西嗎?

我會試着克服PowerShell的焦慮,因為它是未來的外殼。 所有來自Microsoft的軟件都將它用作管理界面,尤其是2.0版本非常有用。

我大部分時間都是C#開發人員,但PowerShell解決了臨時項目的整個“WindowsApplication42”問題。 PowerShell使您可以在命令行shell中完全訪問.NET框架,因此即使您不知道如何在PowerShell中執行某些操作,您也很可能知道如何在.NET中執行此操作。

IronPython和IronRuby 確實可以讓您利用所有的.NET“經驗和代碼庫”(但他們不會回答您對學習新語言的反對意見)。

如果你有任何bash書呆子,你可以嘗試cygwin

還記得Python最初是作為“膠水”語言。 如果您使用前面提到的IronPython ,那么將預先編寫的C#類綁定在一起非常容易。

我認為CS-Script可能是您理想的解決方案。

如果你綁定到MS,PowerShell肯定是要走的路。 但我不喜歡它。

我個人更多地使用MSBuild腳本,並希望看到Mono C#Shell有一天會來到Windows。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM