Батчи

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

  • В поисках работы

    Запостил вчера ночью на геймдев-форуме сообщение о поиске работы. Откликнулось целых два человека, один, правда, я так понял хотел просто позвать в “энтузиастическую” разработку, а второй предложил кинуть ему резюме для более детального анализа. Вот интересно, чем это закончится. Я похоже к этому очень серьезно отношусь, весь день на нервах. С другой стороны оно и…

  • Поездка в Турцию. ч1

    Наконец-то я вернулся из отпуска. Втроем намотали что-то около 7 тыс. км, проехали через 4 (1 условно) страны, искупались в 4 морях, повидали множество природных и искуственных достопримечательностей и вообще просто отдохнули 🙂 Итак, на машине в Турцию. Украина-Румыния. Киев – Черновцы – Пятра-Нямц – Фагараш. Share this post: Share on X (Twitter) Share on…

  • OpenMP

    Попробовал тут, намедни, OpenMP (Open Multi-Processing – это набор директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с разделяемой памятью на языках C, C++ и Fortran). И, можно сказать, прозрел. Добавил в существующие исходники всего две строчки кода и время экспорта тестового фрагмента уровня уменьшилось почти в…

  • Охота

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

  • Техосмотр

    А знаете ли вы, что теперь легально пройти государственный ТО не так уж гемморно? Я вот тоже не знал. А моему отцу, находясь в отпуске стало интересно, он попробовал и у него получилось. В общем рецепт следующий: Сначала нужно получить медсправку (где-то за 160 грн делается), в принципе – она всегда должна быть, но поскольку…