Перейти к контенту

Строй-bat


Рекомендуемые сообщения

*.cmd/*.bat


Главное!
Ни на что не претендую, делаю батники для быстрой и удобной работы с модами, предлагаю и вам тоже. Но кто как хочет, тот так и модостроит, поэтому просьба не ругать.
Использовать батники в мирных целях!!!
Системные требования:
Любая операционная система Windows (желательно XP или 7, у самого семёрка x64)


Изменено пользователем Dennis_Chikin
  • Спасибо 1
  • Нравится 2
  • Полезно 1

ЯДиск папка с крутым схроном!

Ссылка на комментарий

Ух, жесть, не ожидал такое от *bat

Автор сильно потрудился, раз на нём всё сделал. Я даже не знал что это всё возможно.

 

> Удаление комментариев"

Это чтобы воровать? :D

Шучу конечно, хотя не представляю для чего ещё нужно.

 

> "Поиск объекта по координатам иконки"

А есть возможность модифицировать так, чтобы не тока поиск, но и замена координат? (ну и по возможности, длину\высоту) Соль в чём. хочу отсортировать через Stalker Icon Viewer все иконки чтобы не перепутанный были, а по местам, но представив, что надо все файлы вручную дёргать, идея отпала.

Я если что, к батнику простенький GUI напишу, чтобы самому значения не вводить.

Изменено пользователем *Shoker*

Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О

Мастер аномалий на свою заднюю точку.

Ссылка на комментарий

*Shoker*, Удаление комментариев мне понадобилось чтобы выдирать секции да и вообще всё, батник ищет все значения и может случайно схватить из комментария, а это уже будет не правильно, поэтому он сначала удаляет комментарии а затем работает с файлом.

Изменять координаты? Думаю что нет ничего невозможного даже в батнике :). Надо подумать может получиться.

А что за GUI?

ЯДиск папка с крутым схроном!

Ссылка на комментарий

гуи это графическая оболочка консольного приложения, в твоем случае для ком строки.

Если инересно какэто все сделать(с кнопочками и прочей лабудой) стучи 1514138

Ссылка на комментарий

Сделал вот такой код -

@echo Тест батников от Вуки - Текст
set /p name=Как тебя зовут:
@echo %name%, хорошее имя
set /p age=Сколько тебе лет:
@echo %age%, ого скока
pause

перекодировал в Notepad ++ под OEM 866 но все равно получваются каракули. В акел-паде 866 нет. Что делать

 

Добавлено через 8 мин.:

И вот такой вопрос - мне надо к примеру удалить папку gamedata и заменить ее своей. Что отвечает за удаление папки?

Изменено пользователем Wookie

https://www.youtube.com/embed/U0no-6tCxhU

Канал на "Трубе"

Ссылка на комментарий

Wookie

Напиши, сохрани, переставь кодировку(превратится в каракули) и перепиши текст по новой. У мну работает. (Notepad ++)

Изменено пользователем TRAMP14
Ссылка на комментарий

Wookie,

Добавь строку chcp 866>nul, ставить перед выводами на экран. Хотя у меня в нотепаде не сработало.

Можно так же как и TRAMP14 предложил.

То есть писать каракулями:

@echo off
@echo ’Ґбв Ў в­ЁЄ®ў ®в ‚гЄЁ - ’ҐЄбв
set /p name=Љ Є вҐЎп §®ўгв: 
@echo %name%, е®а®иҐҐ Ё¬п
set /p age=‘Є®«мЄ® ⥡Ґ «Ґв: 
@echo %age%, ®Ј® бЄ®Є 
pause>nul

Для удаление папки команда rd

rd /s /q d:\games\Stalker\gamedata

/S Удаление дерева каталогов, т. е. не только указанного каталога, но и всех содержащихся в нем файлов и подкаталогов.

/Q Отключение запроса подтверждения при удалении дерева каталогов с помощью ключа /S.

Изменено пользователем Starter

ЯДиск папка с крутым схроном!

Ссылка на комментарий

Мда.. Не знаю есть сейчас смысл просить или нет.. но можно сделать батник для переименования файлов формата dbх, типа щелкнул батник и в указанных файлах появились два тире --(--gamedata.db1), щелкнул на второй батник из указанных файлов два тире убрал.. Лично мне это было бы удобно..

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

Ссылка на комментарий

FANAT

Для переименования используй .bat файл вот с таким содержимым:

Rename gamedate.db* --gamedata.db*

обратно, соответственно, поменяй местами имена:

Rename --gamedata.db* gamedate.db*

Изменено пользователем ColR_iT
Ссылка на комментарий

ColR_iT, А как сделать, что бы у двух(и больше, но для аналогии два) файлов сразу имя менялось..?

 

Если бы попробовал этот вариант, то не задавал бы таких вопросов!

В данном случае, имя сменится у всех файлов с именем gamedata и с расширением начинающимся на .db.

ColR_iT

 

Добавлено через 29 мин.:

FANAT, Ды мне нужо что бы только у указанных, типа gamedatа.db1, gamedatа.db2, gamedatа.db3 и все, у остальных что бы не менялось..

Изменено пользователем ColR_iT

FANAT.gif

Мой канал на ютабчике... / Недельки из жизни фаната STALKER'a / Клуб 'Фанат Отчуждения'

Я нет-нет, а думаю, может я неправильно жил, надо ж брать деньги у богатых и давать их бедным, а таким как ты давать по морде, шоб у мире была красота и гармония.(с)Ликвидация

Всё в порядке, всё нормально, я беру тебя с собой, я беру тебя с собой. В тёмный омут головой.(с)Смысловые Галлюцинации

Ссылка на комментарий
FANAT, вместо * указывай номер архива, в итоге у тебя в файле должно быть три строки.

Неважно – сколько у тебя друзей. Важно - сколько из них помогут тебе в трудную минуту и сколько вспомнят о тебе когда им хорошо.

"Худ" и "Умное выпадание частей монстров" для Народной солянки

Ссылка на комментарий

Comador, Прав. FANAT, тебе тогда нужно сделать список файлов которые нужно переименовать.

 

if exist gamedata.db1 (
   ren gamedata.db1 --gamedata.db1
) else (
   ren --gamedata.db1 gamedata.db1
)
::---------
if exist gamedata.db2 (
   ren gamedata.db2 --gamedata.db2
) else (
   ren --gamedata.db2 gamedata.db2
)

Или вот что-то этого рода, каждый раз при запуске батник будет проверять имя файла и переименовывать на обратный. Запустил один раз получил два тире "--", запустил второй раз тире убрались.

Можно сделать через список вынесенный в отдельный txt вместе с процедурой, батник будет намного короче и легче в управление, но сложен для создания (кому как).

Изменено пользователем Starter

ЯДиск папка с крутым схроном!

Ссылка на комментарий

Уже довольно длительное время пользуюсь такой возможностью использования батников. Только немного доработал и сделал себе графический интерфейс. Выглядит вот так:

da332174ff2d46cc0865f819599e08cbd97642114070489.jpg

Как видно на одной установленной игре "сидит" у меня сразу 10 модов (и это, конечно же не предел). Причем 9 запускаются на 1.0004, а вот ОГСЕ - на 1.0005. Патч повышается и понижается также бат-файлом, переписываются папки BIN и нужные архивы gamedata.db*. Для каждого мода своя папка с сейвами и скриншотами, свой fsgame.ltx, свой bat-файл. Сразу же вывел возможность просмотреть файл лога. Единственное требование - в момент запуска не должны быть открыты файлы из запускаемого мода, иначе - просто "файл не найден" и запускается оригинал Сталкера.

Экономия места на диске - колоссальная (как и времени на установки\переустановки модов), и в любой момент можно перейти к нужному в данный момент моду.

Для примера - файл, запускающий мод ОГСЕ. Батник сразу при запуске проверяет, корректность завершения предыдущего запуска, если находит ошибку (файл ТХТ с названием ошибочно завершенного мода), то исправляет ее, и только после этого запускает нужный мод.

@echo off

if exist apocalipsis.txt goto clear_apoc

if exist poisk.txt goto clear_poisk

if exist dolg.txt goto clear_dolg

if exist koll.txt goto clear_koll

if exist kollmob.txt goto clear_kollmob

if exist poiskN.txt goto clear_poiskN

if exist logic.txt goto clear_logic

if exist reader.txt goto clear_reader

if exist messer.txt goto clear_messer

if exist ogse.txt goto clear_ogse

 

:start

del -y fsgame.ltx

ren gamedata_ogse gamedata

copy fsgame\fsgame_ogse.ltx fsgame.ltx

ren bin bin_4

ren bin_5 bin

@echo Start ogse>ogse.txt

rem OGSE_Configurator

cd bin

XR_3DA.exe -nointro -noprefetch

cd..

ren gamedata gamedata_ogse

ren bin bin_5

ren bin_4 bin

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y ogse.txt

goto konec

 

:clear_ogse

ren gamedata gamedata_ogse

ren bin bin_5

ren bin_4 bin

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y ogse.txt

goto start

 

:clear_messer

ren gamedata gamedata_messer

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y logic.txt

goto start

 

:clear_logic

ren gamedata gamedata_logic

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y logic.txt

goto start

 

:clear_reader

ren gamedata gamedata_reader

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y reader.txt

goto start

 

:clear_apoc

ren gamedata gamedata_apoc

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y apocalipsis.txt

goto start

 

:clear_poisk

ren gamedata gamedata_poisk

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y poisk.txt

goto start

 

:clear_dolg

ren gamedata gamedata_dolg

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y dolg.txt

goto start

 

:clear_koll

ren gamedata gamedata_koll

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y koll.txt

goto start

 

:clear_kollmob

ren gamedata gamedata_kollmob

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y kollmob.txt

goto start

 

:clear_poiskN

ren gamedata gamedata_poiskN

copy fsgame\fsgame_orig.ltx fsgame.ltx

del -y poiskN.txt

goto start

 

:konec

@echo Vipolneno

 

 

Ссылка на комментарий

Marafon6540, Идя отличная, но очень давнишняя, первоначально такое предложил года три назад max_max_08.

Немного длинноват у тебя батник. Я бы сделал так:

setlocal enableextensions enabledelayedexpansion
@echo off
set /p name="Введите название мода: "
set /p num="Введите номер патча: "

::Подготовка мода------------------
set old_file="old_gamedata"
set file="gamedata"
set file_new="gamedata_%name%"
call :reorg

::Подготовка патча-------------
set old_file="old_bin"
set file="bin"
set file_new="bin_%num%"
call :reorg

::Подготовка fsgame.ltx-------------
set old_file="fsgame_mods\old_fsgame.ltx"
set file="fsgame_mods\fsgame.ltx"
set file_new="fsgame_mods\fsgame_%name%.ltx"
call :reorg

::Запуск, игра
bin\XR3DA.exe -nointro -noprefetch

::Возврат имён и закрытие------------
ren "gamedata" "gamedata_%name%"
ren "bin" "bin_%num%"
ren "fsgame_mods\fsgame.ltx" "fsgame_mods\fsgame_%name%.ltx"
if exist "old_gamedata" ren "old_gamedata" "gamedata"
if exist "old_bin" ren "old_bin" "bin"
if exist "fsgame_mods\old_fsgame.ltx" ren "fsgame_mods\old_fsgame.ltx" "fsgame_mods\fsgame.ltx"

endlocal
goto :eof


::Процедура подготовки---------
:reorg
if exist "%file_new%" (
if exist "%file%" ren "%file%" "%old_file%"
ren "%file_new%" "%file%"
)
goto :eof

 

 

У меня вопрос: как ты через батник организовал GUI? Я могу предположить что только при помощи языка программирования типа Делфи или Си++.

 

Wookie,

@echo off
:nach
set text="not"
set /p text=
if "%text%" == "not" goto nach
@echo Ok

Изменено пользователем Starter

ЯДиск папка с крутым схроном!

Ссылка на комментарий
Starter, не через батник, сторонняя прога - Multimedia Builder. Простая и надежная до опупения. Сделал меню с кнопками, при нажатии на кнопку - запускается либо нужный батник, либо блокнот с параметром загрузки нужного лога.
Ссылка на комментарий
Marafon6540, Не слышал от такой среде. Но если говоришь простая то это очень хорошо, для тех кто работает с мелочью и с батниками отлично :). Сам начала по совету _zero_cool_ на Builder 6, сейчас шинкую на RAD Studio, нравится :). Изменено пользователем Starter

ЯДиск папка с крутым схроном!

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...