Какой хороший способ написать пакетные сценарии на C #? - PullRequest
12 голосов
/ 30 мая 2009

Я хотел бы написать простые скрипты на C #. Вещи, для которых я бы обычно использовал файлы .bat или 4NT .btm. Копирование файлов, разбор текста, запрос пользовательского ввода и так далее. Довольно просто, но сделать это прямо в командном файле очень сложно (например, без исключений).

Я знаком с оболочками для создания сценариев из командной строки, такими как AxScript, так что это помогает мне в этом. Чего мне не хватает, так это простого механизма манипулирования файлами. Я хочу иметь возможность выполнять функции типа cd (".."), copy (srcFile, destFile).

Инструменты, которые я пробовал:

  • NANT, который мы используем в процессе сборки. Не очень хороший инструмент для написания сценариев. Безумно многословный синтаксис XML и для добавления простой функции необходимо написать сборку расширения. Не может сделать это встроенным.

  • PowerShell. Выглядит великолепно, но я просто не смог переключиться на это как на свою основную оболочку. Слишком много отличий от 4NT. Все, что я делаю, должно запускаться из обычной командной строки и не требует специальной оболочки для запуска. Можно ли использовать PowerShell в качестве исполнителя сценария?

  • Perl / Python / Ruby. Очень не хочется изучать совершенно новый язык и фреймворк только для выполнения операций с пакетными файлами. Я не смог посвятить время, которое мне нужно для этого. Кроме того, мы на 99% .NET-магазин для нашей цепочки инструментов, и я действительно хочу использовать наш существующий опыт и кодовую базу.

Существуют ли какие-либо фреймворки, которые пытаются решить эту проблему "создания командного файла в C #", которую вы использовали?

Мне нужна мощь C # / .NET с функциональностью типа немедленного режима типичного языка оболочки cmd.exe. Я один хочу что-то подобное?

Ответы [ 5 ]

26 голосов
/ 30 мая 2009

Я бы попытался преодолеть беспокойство PowerShell, потому что это оболочка будущего. Все программное обеспечение, выпущенное Microsoft, использует его в качестве интерфейса управления, и особенно версия 2.0 невероятно полезна.

Большую часть времени я являюсь разработчиком на C #, но PowerShell решил всю эту проблему «WindowsApplication42» временных проектов, которая только накапливалась. PowerShell предоставляет вам полный доступ к .NET Framework в оболочке командной строки, поэтому даже если вы не знаете, как что-то сделать в PowerShell, вы, скорее всего, знаете, как это сделать в .NET.

3 голосов
/ 30 мая 2009

IronPython и IronRuby do позволяют вам использовать все свои "опыт и кодовую базу" .NET (однако, они не отвечают на ваши возражения против изучения новых языков).

2 голосов
/ 30 мая 2009

Если у вас есть ботаники, вы всегда можете попробовать cygwin .

Также помните, что Python изначально задумывался как "клейкий" язык. Если вы использовали вышеупомянутый IronPython , то довольно легко связать вместе заранее написанные классы C #.

1 голос
/ 19 мая 2010

Я думаю, CS-Script может быть идеальным решением для вас.

1 голос
/ 31 мая 2009

Если вы привязаны к MS, PowerShell, безусловно, поможет вам. Но мне это не очень нравится.

Лично я больше использую скрипт MSBuild и хотел бы, чтобы однажды Mono C # Shell пришел в Windows.

...