Написание скриптов на C# (batch)
Возник следующий вопрос: как правильно написать батч скрипт, который должен делать проверку xml файлов, ну и в лог файлы выводить результаты проверки? Речь идет о батч скриптах, код для обработки xml файлов будет писаться на С#. Из того что почитала в сети, то можно просто из батч файла запустить экзешник проги на С шарп, которая собственно и будет все делать, это правильный подход? видела вариант размещения кода на Си шарп прямо в батч файле, который передается запускаемому компилятору .NET FW-ка, создается экзешник... думаю идея ясна, но я не думаю, что это данный случай, скорее это интересная игрушка, а не правильный программинг.
из краткого описания ТЗ, что я уже имею:
"написать скрипты (бэтчи) для проверки xml. Условия - язык написания –не важно. Важно чтобы скрипт был инкапсулейтед –то есть веешь в себе и отдельно получался репорт"
если кто объяснит мне грамотейке :-) что такое веешь в себе, буду благодарна, но я так поняла, что мысль, что прога выполняет свою работу в результате которой создается отчет о проделанной работе, и все.
Буду благодарна за наводку как правильно подойти к написанию таких скриптов. Также не помешает ссылка на хорошее описание о коммандах в батч файлах. Гуглом пользовалась, в мсдн была, кое что почитала, просто спрашиваю проверенные источники.
C# - не скриптовый язык. VBScript, JScript, Python, php и тому подобное - скриптовые.
"веешь в себе" - могу предположить, что просто "очепятка" :) Скорее всего это д.б. "вещь в себе".
Это прямо отсюдава.
Ну а скрипт можно на вб/джаваскрипт написать например полностью. Виндовые (а я полагаю все для родимой) батч файлы не слишком функциональны, а WSH очень даже.
речь о скрипте под винду, это во первых. речь конкретно о батч файле, те комманды, которые он поддерживает, по любому не дадут мне функциональности, что справиться с поставленной задачей, а именно: обработать N кол-во XML файлов: считать их содержимое, найти в них ошибки(имеются ввиду ошибки в тексте по поставленным критериям заказчика), создать лог файл и записать результаты проверок. может я что то не дочитала, но комманды, которые я могу использовать в батч файле, мне этот функционал не дадут. допустим я могу это написать на JScript, хотя с С шарп я чувствую себя комфортней, а джаву скрипт предпочитаю исключительно для веб приложений на стороне клиента, там уж мне деваться некуда, как выглядит рецепт осуществления данной задачи? т.е. как с батч файла запустит код на js? извините за тупой вопрос, я с батч файлами дело вообще не имела, так уж получилось. спасибо за вашу помощь.
меня не спрашивают, что функциональней. человек ищет кто это напишет и платит за это деньги. хошь - пиши, но что просят, не хочешь - проходи мимо.
если в двух словах объясните, как моя жизнь измениться к лучшему, если вместо С шарп я возьму один из скриптовых языков, что вы предлагаете, а ближе всего мне джаваскрипт, остальные вообще не юзаю, буду действительно благодарна. батч файл не обсуждается, просили именно его, какой язык программирования для скрипта - заказчику все равно, хоть на асме, лишь бы работало. задачу я немного выше описала, если подскажите граммотный подход решения но в рамках заказчика - респект )
Ну а скрипт можно на вб/джаваскрипт написать например полностью. Виндовые (а я полагаю все для родимой) батч файлы не слишком функциональны, а WSH очень даже.
да что такое инкапсуляция с точки зрения ООП, я более менее понимаю, а вот что клиент этим сказать хотел, это сложней вопрос. я вначале решила ознакомиться с ТЗ, с непонятными моментами типа батч файл и т.д., а затем уже мучить клиента своими умными вопросами. я вообще не знаю на каком он уровне отношений с программингом и в каком смысле такие слова использует.
написать скрипты (бэтчи) для проверки xml. Условия - язык написания –не важно
.bat-файлы (они же batch) имеют совершенно определенную грамматику, синтаксис и т.д., то бишь пишутся на совершенно конкретном языке. Могу предположить, что речь может идти о написании WSH-скрипта. Под "вещью в себе" может подразумеваться, что проект не должен иметь никаких внешних зависимостей. Собственно, WSH удовлетворяет этим требованиям.
P.S.
[QUOTE=Olga]
может я что то не дочитала, но комманды, которые я могу использовать в батч файле, мне этот функционал не дадут
[/QUOTE]
Именно так, согласен на 200%. Батники изначально были созданы ислючительно с целью автоматизации задач администрирования системы. Этот язык на порядки беднее даже юниксового шелла.
Если дадите E-Mail - сброшу хорошую книгу по .bat-файлам и WSH.
P.P.S. Еще одна идея возникла. Возможно, речь идет о том, что саму обработку XML-файлов вы пишете на том же C#, а в .bat-файлы запихиваете только вызов этого обработчика. Например:
:Begin
rem Вызвать обработку для всех файлов каталога
for /r %%f in (*) do (
for %%g in (%%f) do (
if /i "%%~xg" == ".xml" ( :: если это XML-файл
call XmlFilesHandler.exe %%g :: вызвать обработку этого файла
)
)
)
Код на ходу писал, прошу простить, если чего не так. Вроде по сути не ошибся...
Насчет бат файлов, википедия гласит:
так что подход написать прогу на Си шарп и запустить с батника для выполнения основного функционала не такой странный. Насчет виндовского пауершелла, может он в 100 раз болшье подходит, но если человек хочет бат файл, мне то какая разница.
так это же суть вопроса, я такой именно вывод и сделала и спрашивала, правильный ли это подход. не у клиента же мне спрашивать, как мне задачу решить(он же сбежит сразу :)))). человеку нужен батник и он его получит, вместе с экзешником на Си шарп, который и сделает всю работу, а запускаться он будет именно с бат файла. наверно им это надо для администрирования.
насчет того, что клиент не понял, не знаю, изначально он искал кого то, кто напишет батник плюс скрипт на Си с плюсами, но мне шарп ближе, поэтому в ответ на мой вопрос он и написал, язык программирования не важен. т.к. я с батниками дело не имела, вот и озадачилась, как все это правильно оформить. решила лучше посоветоваться, чем собственные *чудеса* творить.
Емайл выслала через ЛС. Книгу хочу.
Емайл выслала через ЛС. Книгу хочу.
Выслал.