Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Написание скриптов на C# (batch)


Автор: Glo 17.6.2011, 13:33
Всем здравствуйте )

Возник следующий вопрос: как правильно написать батч скрипт, который должен делать проверку xml файлов, ну и в лог файлы выводить результаты проверки? Речь идет о батч скриптах, код для обработки xml файлов будет писаться на С#. Из того что почитала в сети, то можно просто из батч файла запустить экзешник проги на С шарп, которая собственно и будет все делать, это правильный подход? видела вариант размещения кода на Си шарп прямо в батч файле, который передается запускаемому компилятору .NET FW-ка, создается экзешник... думаю идея ясна, но я не думаю, что это данный случай, скорее это интересная игрушка, а не правильный программинг.

из краткого описания ТЗ, что я уже имею:
"написать скрипты (бэтчи) для проверки xml. Условия - язык написания –не важно. Важно чтобы скрипт был инкапсулейтед –то есть веешь в себе и отдельно получался репорт"

если кто объяснит мне грамотейке smile что такое веешь в себе, буду благодарна, но я так поняла, что мысль, что прога выполняет свою работу в результате которой создается отчет о проделанной работе, и все.

Буду благодарна за наводку как правильно подойти к написанию таких скриптов. Также не помешает ссылка на хорошее описание о коммандах в батч файлах. Гуглом пользовалась, http://msdn.microsoft.com/en-us/library/bb490869.aspx, кое что почитала, просто спрашиваю проверенные источники.

Автор: jonie 17.6.2011, 21:26
Для проверки XML сущесвтуют схемы DTD и XSD. Вторый как-то более строгие.
Для проверки на что-то (какие-то условия) внутри xml существуют языки XSLT, XQuery.

что вы собственно собрались проверять C#-ом? А главное, зачем..

Автор: Glo 17.6.2011, 21:49
Цитата(jonie @ 17.6.2011,  20:26)
Для проверки XML сущесвтуют схемы DTD и XSD. Вторый как-то более строгие.
Для проверки на что-то (какие-то условия) внутри xml существуют языки XSLT, XQuery.

что вы собственно собрались проверять C#-ом? А главное, зачем..

jonie, спасибо за ваш ответ. 

зачем? так хочет работадатель. хочу взять маленький заказ, фриланс, я недавно закончила колледж по программированию, работы пока не нашла, а здесь очень простая задача, вроде знакомая мне, около года назад писала нечто подобное, только там было оконное приложение, WinForms, а здесь скрипт просят, батч файл, вот я и пытаюсь узнать как это правильно сделать.

что проверять? в хмл файлах будет текст, который и надо будет проверить на корректность, типа пробелов до и после круглых скобок, знаков припенания и т.д., если надо, я могу конечно ТЗ привести, но данная тема была создана именно из за скрипта, как правильно его оформить. завтра буду с регулярками и хмл файлами разбираться, может конечно тоже вопросы возникнут )

насчет XSLT & XQuery - знакома с XQuery, мне его хватило для поставлнных передо мной задач в прошлом, сейчас надеюсь тоже хватит.

задала вопрос на форуме майкрософт, мне там ответили, что надо запускать екзешник проги на С шарп, консольное приложение, с батч файла. видимо это нормальное решение, узнаю, что думает об этом заказчик.

Автор: Kefir 17.6.2011, 23:42
"веешь в себе" мне кажется означает "вещь в себе" smile

А вообще все правильно вам подсказали - пишете нормальное приложение, которое потом просто напросто вызываете из своего батника. Но с другой стороны - если "вещь в себе" подразумевает только наличие бат файла, то можете поизвращаться с запуском компилятора прямо из бат файла.

К слову сказать я не совсем понимаю причин, по которым заказчик может хотеть конкретно бат файл. Смысла в этом нет никакого - почему нельзя скомпилировать нормальный exe и запускать его? Это я к тому, что вы бы с заказчиком поговорили на эту тему (точнее о причине такого запроса). Чтобы не получилось, что он собирается запускать ваши скрипты в каком-нибудь досе, где .НЕТа не существует в природе. Или же под батч файлами имеются не *.bat, а просто скрипты (к примеру для юниксов). В общем с таким странным ТЗ надо еще прояснить ситуацию прежде чем начинать работу.

Автор: Glo 18.6.2011, 00:39
Цитата(Kefir @ 17.6.2011,  22:42)
"веешь в себе" мне кажется означает "вещь в себе" smile

А вообще все правильно вам подсказали - пишете нормальное приложение, которое потом просто напросто вызываете из своего батника. Но с другой стороны - если "вещь в себе" подразумевает только наличие бат файла, то можете поизвращаться с запуском компилятора прямо из бат файла.

К слову сказать я не совсем понимаю причин, по которым заказчик может хотеть конкретно бат файл. Смысла в этом нет никакого - почему нельзя скомпилировать нормальный exe и запускать его? Это я к тому, что вы бы с заказчиком поговорили на эту тему (точнее о причине такого запроса). Чтобы не получилось, что он собирается запускать ваши скрипты в каком-нибудь досе, где .НЕТа не существует в природе. Или же под батч файлами имеются не *.bat, а просто скрипты (к примеру для юниксов). В общем с таким странным ТЗ надо еще прояснить ситуацию прежде чем начинать работу.

Спасибо, я тоже уже думала, что надо ОС выяснить, на всякий случай. конечно же обсудим наличие фреймворка на компе, правда если речь о винде, то это не проблема. 

Автор: Rohoss 18.6.2011, 11:03
Вообще для таких вещей сам бог велел использовать http://ru.wikipedia.org/wiki/Windows_PowerShell  smile 

Автор: Glo 18.6.2011, 11:20
Цитата(Rohoss @ 18.6.2011,  10:03)
Вообще для таких вещей сам бог велел использовать http://ru.wikipedia.org/wiki/Windows_PowerShell  :smile

Суть проблемы в том, что командуют люди, и с этим приходится считаться :)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)