Батчи

Вот есть такая монструозная вещь, как batch files в виндовсе, намного неудобнее любого sh или perl, но! Зато процессор оных стоит на каждой машине с виндовсом, а значит у каждого художника или геймдизайнера (или бухгалтера, клерка и кто там ещё пользуется компьютером в других отраслях).
Так вот, о чём это я – о том, что на самом деле со времён доса и 98 винды многое изменилось – нынешний cmd стал намного полезней того кошмара, что был много лет назад.
Мне даже удалось написать скрипт для сборки всех 30 наших уровней и практически обойтись без GOTO.

@echo off

set EXPORTER=..\..\tool\il_psp_exporter

set PC_RKB=..\build\pc\maps
set PC_CMD=-pwsp\il_psp.ddhproj -tPC -lRUS -xDX9 -xOpenAL -d

set PSP_RKB=..\build\psp\PSP_GAME\USRDIR\data\maps
set PSP_CMD=-pwsp\il_psp.ddhproj -tPSP -lRUS -xSASCore -d

IF  [%1]==[] (
 echo Usage: "build_level.bat level_number", or "build_level.bat all" for all levels export
 exit

) ELSE IF [%1]==[all] (
 echo building all levels
 FOR /L %%i IN (1, 1, 30) DO (
  CALL :s_export_level %%i
 )

) ELSE CALL :s_export_level %1

GOTO :eof

:s_export_level

 echo =============================
 echo processing level%1...
 echo =============================
 echo ----------------------------- 
 echo exporting briefing
 echo ----------------------------- 
 echo skipped due to technical reasons
 rem %EXPORTER% wsp\brf_level%1.ddlproj -o%PC_RKB%\brf_level%1.rkb %PC_CMD%
 rem %EXPORTER% wsp\brf_level%1.ddlproj -o%PSP_RKB%\brf_level%1.rkb %PSP_CMD%

 echo ----------------------------- 
 echo exporting PC content
 echo ----------------------------- 
 %EXPORTER% wsp\level%1.ddlproj -o%PC_RKB%\level%1.rkb %PC_CMD%

 echo ----------------------------- 
 echo exporting PSP content
 echo ----------------------------- 
 %EXPORTER% wsp\level%1.ddlproj -o%PSP_RKB%\level%1.rkb %PSP_CMD%
 echo =============================
GOTO :eof
_Winnie C++ Colorizer

Что у нас тут имеется:
Инициализация переменных – тут всё вроде бы просто.
Ветвление – обрамляется скобками, открывающая должна быть на той же строке, что и IF (ELSE)
Цикл по цифрам (есть ещё много других циклов, по каталогам, файлам, содержимому файлов).
Ещё имеется функция – это действительно функция (или субрутина, кому как) её можно вызывать и передавать параметры, что, собсно и делается.

Similar Posts

  • Нету инета

    Дома четвертый день нету инета, ваапсче нету. Отключили за неуплату, типа… Уроды (почему уроды – позже). При чем я узнал об этом только в четверг вечером, ну соответственно, в пятницу утром я, как приличный человек пошел и проплатил, сразу на месяц вперед, сделал это даже в банке, который они мне рекомендовали – типа быстро работает….

  • Assist

    Visual Assist хорош всем, кроме одной мелочи – он тормозной, как виндовс 98 на 486 машине. Сегодня меня достало то, что после каждого сохранения можно идти пить чай, потому что происходит это ну очень долго. Секрет оказался простым – авто-бекап файлов, который делает ассист. Однажды я уже сталкивался с его работой, после краша студии он…

  • Погодка

    Что-то последнее время погодка все больше напоминает пиррянскую – вчера был снег, сегодня уже ярко светит солнце и даже немножко тепло. Прогноз говорит, что послезавтра опять холодно и снежно будет. Правда прогнозы тоже последнее время не очень хорошо работают, так что все намекает на то, что у нас здесь Пирр – разве что гравитация поменьше…

  • Финал сити-квеста

    Эдак месяц назад на одном награждении за квесты мы сидели за одним столом с дружественной нам командой 3+2. В какой-то момент они нам предложили помочь им с финалом сезона проекта city quest, там должна была быть жёсткая игра, но самое интересное не в этом, а в том, что она должна была быть двухэкипажной, т.е. каждая…

  • VS2005 Automation

    Я пишу Add-in для студии, который бы позволил более эффективно компилировать проекты gcc компилятором, которым мы пользуемся. На данный момент самой важной и насущной проблемой является управление компилятором, получение текущих настроек и установка своих, и вот тут начинаются проблемы 🙁 Для любого Add-in доступен объект типа EnvDTE2, который предоставляет доступ ко всему, что есть в…

  • Снова автомобиль

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