Подтвердить что ты не робот

Какой хороший способ написать пакетные скрипты в С#?

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

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

Я разработчик С# большую часть времени, но PowerShell решила эту проблему "WindowsApplication42" для проектов temp, которые просто накапливаются. PowerShell предоставляет полный доступ к платформе .NET в оболочке командной строки, поэтому, даже если вы не знаете, как это сделать в PowerShell, вы, скорее всего, знаете, как это сделать в .NET.

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Я лично использую MSBuild script больше, и хотел бы, чтобы Mono С# Shell в один прекрасный день приходила в Windows.

Ответ 5

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