Батчи

Вот есть такая монструозная вещь, как 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

  • Windows installer

    Похоже, что Setup Project, который встроен в студию можно выбросить на свалку по причине полной бестолковости. Для того, чтобы установить более-менее серьезное приложение, с разными предусловиями, всякими-разными guid и записями в реестр надо что-то более толковое. Почитав MSDN нашёл интересную тулзу WiX. Вот её-то и попробуем для установки плагина на чистую машину. Поможет нам в…

  • Автомобиль

    Я наконец-то заимел возможность ездить на машине, вы думаете я стал крутым мачо, который может теперь перемещаться по городу со скоростью света и никуда не опаздывать? ХРЕН!!! Потому что это советский автомобиль, а это значит, что дня 3-4 ты ездишь, а потом столько же ты снова ездишь, но на обычном транспорте, потому что машина не…

  • Direct sound

    Мое серьезное знакомство с майкрософтом началось с дотнета. Я офигел насколько круто и удобно они сделали платформу, как легко и быстро все делается, в общем я понял, что мсовцы переродились. Но вот мне понадобилось вместо OpenAL писать под чистый DirectSound, я офигел 🙂 Целый день потрачен на то, чтобы банально загрузить звук в буфер и…

  • Выходные

    Эти выходные оказались зачетными, обнаружились несколько очень неприятных багов, из-за которых пришлось торчать на работе, ведь на носу Лейпциг 🙂 Теперь я, вроде бы, умею раскручивать стек, имея дамп всей памяти, слава богу ее не очень много, всего 24МБ. Проапгрейдил ассерт, теперь он выдает файл, строку, имя функции в которой произошло нарушение. Написал, как показала…

  • Новый Год

    Ура, праздники наконец-то отгремели и можно подвести некоторый итог 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit

  • Киевская горка

    Ходили сегодня с Андрюхой (экс-старостой) на Протасов Яр покататься. В будни как-то поприятней выходит – народу поменьше, не так всё счёсано и не боишься налететь на кого-то или чтобы на тебя кто-то налетел 🙂 Огорчает только длина – она настолько маленькая, что подъем выходит значительно дольше спуска. Надо ехать в нормальные горы, пора… Share this…