Статьи Код С# в bat-файле

Discussion in 'Статьи' started by CodeSender:), 7 Nov 2010.

  1. CodeSender:)

    CodeSender:) Elder - Старейшина

    Joined:
    29 Jul 2010
    Messages:
    245
    Likes Received:
    115
    Reputations:
    23
    Маленькая забавность о том, как использовать все возможности dotNet в обычных bat-скриптах. Или сделать скриптовый язык из С#.
    Далее рассказан простой способ скомпилировать и запустить код С#, который находится внутри bat-файла.

    Не буду долго томить:
    Разберем, как это получается.
    Сначала работает bat-интерпретатор. Первую строчку скрипта он не понимает и выдает ошибку. Но не страшно, это чисто визуальное неудобство. Подчистим за ним во второй строчке.
    Далее пытаемся найти каталог с компилятором csc.exe и запускаем его.
    Компилятор .Net Framework'a, csc в качестве аргумента принимает путь к файлу с исходником. В нашем случае исходник находится в теле bat-файла(строки 13–20). Текст bat-команд игнорируется, как комментарий(строки 1 и 11).
    После работы компилятора, получаем исполняемый файл, который запускаем и удаляем после завершения его работы.
    Работа bat-интерпретатора заканчивается на 10 строке (exit).

    Этот подход работает на Vista/7 «из коробки» и на ХР, с установленным .Net Framework.
    Целесообразность, конечно, сомнительная. Так, just for fun.
    http://habrahabr.ru/blogs/net/107659/#habracut​


    От себя:
    Проверил на себе, идея хорошая. Уже есть пара мыслей как это хитро применить. Работают все немспейсы, можно указывать через using. И да, работают даже винформсы!
     
    #1 CodeSender:), 7 Nov 2010
    Last edited: 7 Nov 2010
  2. j-prof

    j-prof Banned

    Joined:
    29 Aug 2010
    Messages:
    321
    Likes Received:
    11
    Reputations:
    -4
    аааааааааааааааааааааааааааааа люблю тя ты мой герой ппц круто
    я фигею аааааааааааааааааааааааааааааааааааааааааааааааааа
     
  3. N@b$ter

    N@b$ter Elder - Старейшина

    Joined:
    6 Oct 2009
    Messages:
    293
    Likes Received:
    73
    Reputations:
    21
    прикольная тема, очень познавательно. Можут очень помочь ;)
     
  4. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
  5. j-prof

    j-prof Banned

    Joined:
    29 Aug 2010
    Messages:
    321
    Likes Received:
    11
    Reputations:
    -4
  6. Charle

    Charle Member

    Joined:
    10 Aug 2010
    Messages:
    18
    Likes Received:
    5
    Reputations:
    4
    Да это не этот сделал, а умный с хабры. А этот просто скопировал.
     
    #6 Charle, 7 Nov 2010
    Last edited: 7 Nov 2010
  7. j-prof

    j-prof Banned

    Joined:
    29 Aug 2010
    Messages:
    321
    Likes Received:
    11
    Reputations:
    -4
    и за это спасибо :D я б без него не узнал про это
    я на ачате сижу а не на "хабре"
     
  8. aka_zver

    aka_zver Elder - Старейшина

    Joined:
    17 Sep 2009
    Messages:
    471
    Likes Received:
    330
    Reputations:
    73
    шутники бля =\
     
  9. DeepBlue7

    DeepBlue7 Elder - Старейшина

    Joined:
    2 Jan 2009
    Messages:
    359
    Likes Received:
    50
    Reputations:
    12
    Очень информационно насыщенный пост.



    А по теме, есть пару вариантов заюзать :) Спасибо.
     
  10. bad_boy

    bad_boy Elder - Старейшина

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    Это, вообще, давно известно было и до "умного" с хабры. Для C# довольно бесполезная вещь.