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

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

Starter   

*.cmd/*.bat


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


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

  • http://www.amk-team.ru/forum/uploads//ratings/bf.gif × 1
  • http://www.amk-team.ru/forum/uploads//ratings/thumb_up.png × 2
  • http://www.amk-team.ru/forum/uploads//ratings/wrench_orange.png × 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
*Shoker*   

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

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

 

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

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

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

 

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

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

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

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Starter   

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

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

А что за GUI?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Wookie   

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

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

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

 

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

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

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
TRAMP14   

Wookie

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

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Starter   

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
FANAT   

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
ColR_iT   

FANAT

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

Rename gamedate.db* --gamedata.db*

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

Rename --gamedata.db* gamedate.db*

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
FANAT   

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

 

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

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

ColR_iT

 

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

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

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

Поделиться этим сообщением


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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Starter   

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

 

 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Wookie   

Вопрос таков -

можно ли проверять введенное в

set /p blah_blah_blah

?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Starter   

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. Простая и надежная до опупения. Сделал меню с кнопками, при нажатии на кнопку - запускается либо нужный батник, либо блокнот с параметром загрузки нужного лога.

Поделиться этим сообщением


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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Blu2z   

Я использовал для графики AutoPlay Media Studio. В ней хорошо менюшки создавать.

c4f100685a077ecd3eec879ca7eebfe0b2d9cf114763028.jpg 0795d3cf834ffb6857fb06da8691810db2d9cf114763209.jpg

 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

Войти

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

Войти

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

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

×