Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Написание скриптов на C# (batch)

242
17 июня 2011 года
Оlga
2.2K / / 04.02.2006
Всем здравствуйте )

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

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

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

Буду благодарна за наводку как правильно подойти к написанию таких скриптов. Также не помешает ссылка на хорошее описание о коммандах в батч файлах. Гуглом пользовалась, в мсдн была, кое что почитала, просто спрашиваю проверенные источники.
73K
17 июня 2011 года
realvirt
1 / / 17.06.2011
Добрый день!
C# - не скриптовый язык. VBScript, JScript, Python, php и тому подобное - скриптовые.
"веешь в себе" - могу предположить, что просто "очепятка" :) Скорее всего это д.б. "вещь в себе".
14
17 июня 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата:
Инкапсуляция (encapsulation) - это механизм, который объединяет данные и код, манипулирующий зтими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. В объектно-ориентированном программировании код и данные могут быть объединены вместе; в этом случае говорят, что создаётся так называемый "чёрный ящик". Когда коды и данные объединяются таким способом, создаётся объект (object). Другими словами, объект - это то, что поддерживает инкапсуляцию.


Это прямо отсюдава.
Ну а скрипт можно на вб/джаваскрипт написать например полностью. Виндовые (а я полагаю все для родимой) батч файлы не слишком функциональны, а WSH очень даже.

242
17 июня 2011 года
Оlga
2.2K / / 04.02.2006
Люди, спасибо за ваши ответы.

Цитата:
C# - не скриптовый язык. VBScript, JScript, Python, php и тому подобное - скриптовые.


речь о скрипте под винду, это во первых. речь конкретно о батч файле, те комманды, которые он поддерживает, по любому не дадут мне функциональности, что справиться с поставленной задачей, а именно: обработать N кол-во XML файлов: считать их содержимое, найти в них ошибки(имеются ввиду ошибки в тексте по поставленным критериям заказчика), создать лог файл и записать результаты проверок. может я что то не дочитала, но комманды, которые я могу использовать в батч файле, мне этот функционал не дадут. допустим я могу это написать на JScript, хотя с С шарп я чувствую себя комфортней, а джаву скрипт предпочитаю исключительно для веб приложений на стороне клиента, там уж мне деваться некуда, как выглядит рецепт осуществления данной задачи? т.е. как с батч файла запустит код на js? извините за тупой вопрос, я с батч файлами дело вообще не имела, так уж получилось. спасибо за вашу помощь.

Цитата:
Ну а скрипт можно на вб/джаваскрипт написать например полностью. Виндовые (а я полагаю все для родимой) батч файлы не слишком функциональны, а WSH очень даже.


меня не спрашивают, что функциональней. человек ищет кто это напишет и платит за это деньги. хошь - пиши, но что просят, не хочешь - проходи мимо.

если в двух словах объясните, как моя жизнь измениться к лучшему, если вместо С шарп я возьму один из скриптовых языков, что вы предлагаете, а ближе всего мне джаваскрипт, остальные вообще не юзаю, буду действительно благодарна. батч файл не обсуждается, просили именно его, какой язык программирования для скрипта - заказчику все равно, хоть на асме, лишь бы работало. задачу я немного выше описала, если подскажите граммотный подход решения но в рамках заказчика - респект )

242
17 июня 2011 года
Оlga
2.2K / / 04.02.2006
Цитата: Phodopus
Это прямо отсюдава.
Ну а скрипт можно на вб/джаваскрипт написать например полностью. Виндовые (а я полагаю все для родимой) батч файлы не слишком функциональны, а WSH очень даже.



да что такое инкапсуляция с точки зрения ООП, я более менее понимаю, а вот что клиент этим сказать хотел, это сложней вопрос. я вначале решила ознакомиться с ТЗ, с непонятными моментами типа батч файл и т.д., а затем уже мучить клиента своими умными вопросами. я вообще не знаю на каком он уровне отношений с программингом и в каком смысле такие слова использует.

278
17 июня 2011 года
Alexander92
1.1K / / 04.08.2008
Честно говоря, более чем уверен, что клиент не понял до конца, что имел в виду. :) Утверждаю это, исходя из следующей фразы:
Цитата:

написать скрипты (бэтчи) для проверки xml. Условия - язык написания –не важно



.bat-файлы (они же batch) имеют совершенно определенную грамматику, синтаксис и т.д., то бишь пишутся на совершенно конкретном языке. Могу предположить, что речь может идти о написании WSH-скрипта. Под "вещью в себе" может подразумеваться, что проект не должен иметь никаких внешних зависимостей. Собственно, WSH удовлетворяет этим требованиям.

P.S.
[QUOTE=Olga]
может я что то не дочитала, но комманды, которые я могу использовать в батч файле, мне этот функционал не дадут
[/QUOTE]
Именно так, согласен на 200%. Батники изначально были созданы ислючительно с целью автоматизации задач администрирования системы. Этот язык на порядки беднее даже юниксового шелла.
Если дадите E-Mail - сброшу хорошую книгу по .bat-файлам и WSH.

P.P.S. Еще одна идея возникла. Возможно, речь идет о том, что саму обработку XML-файлов вы пишете на том же C#, а в .bat-файлы запихиваете только вызов этого обработчика. Например:

 
Код:
@echo off
:Begin
  rem Вызвать обработку для всех файлов каталога
  for /r %%f in (*) do (
    for %%g in (%%f) do (
      if /i "%%~xg" == ".xml" (   :: если это XML-файл
        call XmlFilesHandler.exe %%g   :: вызвать обработку этого файла
      )
    )
  )


Код на ходу писал, прошу простить, если чего не так. Вроде по сути не ошибся...
242
18 июня 2011 года
Оlga
2.2K / / 04.02.2006
Alexander-92, спасибо за подробный ответ.

Насчет бат файлов, википедия гласит:
Цитата:
Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно COMMAND.COM или CMD.EXE, так и обращения к внешним утилитам, существующим в виде отдельных программ (файлов .EXE либо любых других исполняемых файлов). Данные программы значительно расширяют возможности пакетных файлов.



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

Цитата:
Возможно, речь идет о том, что саму обработку XML-файлов вы пишете на том же C#, а в .bat-файлы запихиваете только вызов этого обработчика.



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

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

Емайл выслала через ЛС. Книгу хочу.

278
18 июня 2011 года
Alexander92
1.1K / / 04.08.2008
Цитата: Оlga

Емайл выслала через ЛС. Книгу хочу.


Выслал.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог