Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Вопросы-Ответы (не игра) Пред.  1, 2, 3 ... 23, 24, 25
   Список разделов - Болталка - Вопросы-Ответы (не игра)Ответить
АвторСообщение
Gadavre
= Master Sergeant =
Next rank: - Sergeant Major - after 70 points
460

Doom Rate: 1.71

Posts quality: +22
Ссылка на пост №481 Отправлено: 03.05.21 18:00:57
всем привет. есть может знающие люди по батникам? Допустим я не хочу написать длинный cmd скрипт одной строкой и хочу разбить много команд этого скрипта на несколько строк и чтобы это работало. Наверное в конце каждой строки программисты ставят какой то значок, чтобы движки программ понимали, что продолжение cmd будет на другой строке?
JSO x
UAC Sergeant Major
Next rank: UAC Sergeant Major after 70 points
690

Doom Rate: 2.27

Posts quality: +291
Ссылка на пост №482 Отправлено: 03.05.21 18:15:58
Могу предложить использовать подстановку переменных:

@echo off

setlocal

set testHW=Hello, world
set testHW2=! This string was... Err...
set testHW3=Concatenated.

set Z=zdoom.exe -iwad doom2.wad
set WADs=EP5A.wad TestDcr.wad

echo %testHW%%testHW2%%testHW3%
echo.
echo Launch string: "%Z% -file %WADs%"

%Z% -file %WADs%

@echo on
Скрытый текст:

1 5
Gadavre
= Master Sergeant =
Next rank: - Sergeant Major - after 70 points
460

Doom Rate: 1.71

Posts quality: +22
Ссылка на пост №483 Отправлено: 03.05.21 18:40:28
JSO x пишет:
Могу предложить использовать подстановку переменных:
не понимаю я вас. что то у вас все очень сложно
Вот пример. Вот я одной строкой запускаю вад:

start gzdoom.exe -iwad Doom.wad

если я запишу так, как ниже, то это не работает. Так как вторая строка читается сначала . а не как продолжение первой строки... Что можно вставить в конец первой строки? Или что можно вставить в начало второй строки, чтобы это работало и движок прочел как одну строку??

start gzdoom.exe
-iwad Doom.wad
theleo_ua
Lieutenant Colonel
Next rank: Lieutenant Colonel after 258 points
3382

Doom Rate: 1.85

Posts quality: +565
Ссылка на пост №484 Отправлено: 03.05.21 18:42:20
Gadavre пишет:
всем привет. есть может знающие люди по батникам? Допустим я не хочу написать длинный cmd скрипт одной строкой и хочу разбить много команд этого скрипта на несколько строк и чтобы это работало. Наверное в конце каждой строки программисты ставят какой то значок, чтобы движки программ понимали, что продолжение cmd будет на другой строке?


а вот такой https://zdoom.org/wiki/GAMEINFO способ устроит? Там каждый подключаемый файл можно в новой строке писать
3 1
Gadavre
= Master Sergeant =
Next rank: - Sergeant Major - after 70 points
460

Doom Rate: 1.71

Posts quality: +22
Ссылка на пост №485 Отправлено: 03.05.21 18:46:16
theleo_ua пишет:
а вот такой https://zdoom.org/wiki/GAMEINFO способ устроит? Там каждый подключаемый файл можно в новой строке писать
в статье идет речь как я понял не обатниках. а о каких то lumps... мне это совсем незнакомо. так можно сmd script в батнике разбить на 2 строки и чтоб каждая команда начиналась с новой строки? наверняка в программировании есть специальной значок или команда
theleo_ua
Lieutenant Colonel
Next rank: Lieutenant Colonel after 258 points
3382

Doom Rate: 1.85

Posts quality: +565
Ссылка на пост №486 Отправлено: 03.05.21 18:57:31
Gadavre пишет:
в статье идет речь как я понял не обатниках. а о каких то lumps... мне это совсем незнакомо. так можно сmd script в батнике разбить на 2 строки и чтоб каждая команда начиналась с новой строки? наверняка в программировании есть специальной значок или команда


про cmd скрипты не в курсе

метод GAMEINFO позволит тебе написать например вот такой батник:

gzdoom.exe -iwad doom2.wad +exec _DOOM.CFG -file путь_к_gameinfo\ +set sv_cheats 1

а в файле GAMEINFO, который лежит в папке путь_к_gameinfo, будет например такой текст:

Скрытый текст:


LOAD =

//--------------------------------------------------------------------------
//WADS

"путь\имя_вадника_1.wad",
"путь\имя_вадника_2.wad",
"путь\имя_вадника_3.wad",

//--------------------------------------------------------------------------
//MODS

"путь\имя_мода_1.pk3",
"путь\имя_мода_2.pk3",
"путь\имя_мода_3.pk3",

//--------------------------------------------------------------------------
//HD TEXTURES

"путь\имя_текстур_пака_1.pk3",
"путь\имя_текстур_пака_2.pk3",
"путь\имя_текстур_пака_3.pk3",

//--------------------------------------------------------------------------
//COMMA SYNTAX BRAIN RELAX

"Z_PACKS\COMMA_SYNTAX_BRAIN_RELAX.WAD"



т.е. каждый файл - с новой строки
3 1
JSO x
UAC Sergeant Major
Next rank: UAC Sergeant Major after 70 points
690

Doom Rate: 2.27

Posts quality: +291
Ссылка на пост №487 Отправлено: 03.05.21 19:21:48
Gadavre пишет:
если я запишу так, как ниже, то это не работает. Так как вторая строка читается сначала . а не как продолжение первой строки... Что можно вставить в конец первой строки? Или что можно вставить в начало второй строки, чтобы это работало и движок прочел как одну строку??

Насколько знаю, что-то записать в начало/конец строк в Виндовые Batch-скрипты, чтобы они интерпретировались как одна, невозможно. Потому предлагаю альтернативный способ: подстановка переменных, внутри которых хранятся части полной команды.

"setlocal" -- говорим интерпретатору, что изменяем все переменные среды временно, в конце пакетного файла он их сам восстановит.

"set <variable_name>=<string>" -- устанавливаем переменную среды. "<variable_name>" -- её название, по которому мы потом можем получать содержимое, "<string>" -- что внутри неё содержится. Интерпретатор при нахождении "%variable_name%" вставляет вместо неё её содержимое. EDIT: посмотрел сам, уже после отправки, что же там Microsoft про собственную команду написала -- так там столько ошибок... Лучше в поисковике забить "batch set" и нормальный сайт найти.

Таким образом, мы можем "разбить" команду на множество маленьких, и затем последовательно их запустить:
setlocal

set ENGINE=gzdoom.exe
set IWADs=-iwad Doom.wad
set PWADs=-file PWAD1.wad PWAD2.wad PWAD3.wad 

start %ENGINE% %IWADs% %PWADs%

Последняя строка распарсится в "start gzdoom.exe -iwad Doom.wad -file PWAD1.wad PWAD2.wad PWAD3.wad".
1 5
Gadavre
= Master Sergeant =
Next rank: - Sergeant Major - after 70 points
460

Doom Rate: 1.71

Posts quality: +22
Ссылка на пост №488 Отправлено: 03.05.21 19:36:14
JSO x пишет:
Таким образом, мы можем "разбить" команду на множество маленьких, и затем последовательно их запустить:
А понял. да это удобно и не нужно долго выискивать при замене pwada например, что заменить. ща попробую. В Pwad я так понимаю можно также записать моды. текстуры, звуки в pk3

Добавлено спустя 10 минут 55 секунд:

JSO x

Cупер! Это работает! И я теперь могу удобно без всяких программ запускать. то что мне нужно! Я положил iwad в папку gamе, которая в папке порта. Я правильно поставил обратный слэш? Или наклон в другую сторону?

setlocal

set ENGINE=gzdoom.exe
set IWADs=-iwad game\Doom.wad

start %ENGINE% %IWADs%

Рейтинг сообщения: +1, отметил(и): VladGuardian
JSO x
UAC Sergeant Major
Next rank: UAC Sergeant Major after 70 points
690

Doom Rate: 2.27

Posts quality: +291
Ссылка на пост №489 Отправлено: 03.05.21 20:09:01
Gadavre пишет:
Я правильно поставил обратный слэш? Или наклон в другую сторону?
В Windows -- не имеет значения. По крайней мере, на таком уровне.

Gadavre пишет:
Это работает! И я теперь могу удобно без всяких программ запускать.

Найс!
1 5
Страница 25 из 25Перейти наверх Пред.  1, 2, 3 ... 23, 24, 25
   Список разделов - Болталка - Вопросы-Ответы (не игра)