Starter 238 Опубликовано 22 Августа 2011 (изменено) *.cmd/*.bat Главное!Ни на что не претендую, делаю батники для быстрой и удобной работы с модами, предлагаю и вам тоже. Но кто как хочет, тот так и модостроит, поэтому просьба не ругать.Использовать батники в мирных целях!!!Системные требования:Любая операционная система Windows (желательно XP или 7, у самого семёрка x64) Изменено 25 Мая 2014 пользователем Dennis_Chikin 1 2 1 ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 22 Августа 2011 dragunof, Да подумал может кому пригодиться. 1 ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 23 Августа 2011 *Shoker*, Удаление комментариев мне понадобилось чтобы выдирать секции да и вообще всё, батник ищет все значения и может случайно схватить из комментария, а это уже будет не правильно, поэтому он сначала удаляет комментарии а затем работает с файлом. Изменять координаты? Думаю что нет ничего невозможного даже в батнике . Надо подумать может получиться. А что за GUI? ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 26 Августа 2011 (изменено) 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. Изменено 26 Августа 2011 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 8 Марта 2012 (изменено) 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 вместе с процедурой, батник будет намного короче и легче в управление, но сложен для создания (кому как). Изменено 8 Марта 2012 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 15 Марта 2012 (изменено) 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 Изменено 15 Марта 2012 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 16 Марта 2012 (изменено) Marafon6540, Не слышал от такой среде. Но если говоришь простая то это очень хорошо, для тех кто работает с мелочью и с батниками отлично . Сам начала по совету _zero_cool_ на Builder 6, сейчас шинкую на RAD Studio, нравится . Изменено 16 Марта 2012 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 22 Марта 2012 (изменено) Wookie, Например такой батник в файле 1.txt заменяет "###" на "Автор Петрович", на выходе готовый файл 2.txt. setlocal enabledelayedexpansion Set infile="1.txt" Set find="###" Set replace="Автор Петрович." setlocal enabledelayedexpansion for /F "tokens=* delims=," %%n in (!infile!) do ( set LINE=%%n set TMPR=!LINE:%find%=%replace%! Echo !TMPR!>>2.txt ) endlocal pause Изменено 22 Марта 2012 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 27 Марта 2012 Callisto, Собственно вопрос: для чего это нужно? ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 28 Марта 2012 Kontro-zzz, А ну если в этом плане то по мне тоже Punto отлично, про переключение забыл уже. Если вдруг ошибка перевода то Break всегда под рукой, или можно выделить и нажать комбинацию настраиваемых клавиш для перевода кодировки или смена регистра. ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 30 Марта 2012 (изменено) _Val_, Пишет белиберду потому что кодировка должна быть выбрана русская OEM86. Выбирать в AkelPad при сохранение. По скриптам сказать не могу, не работал с ними ни разу. Выложи пример скрипта в котором нужно удалить комментарии. Чтобы в этом скрипте встречались все виды комментариев, все виды случая. Хотя вряд ли, delims findstr почему-то ругаются на знак "-". Но такое можно сделать на C++. Если надо то попробую сделать. Изменено 30 Марта 2012 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 3 Апреля 2012 Vadimische, А как ты указываешь файл в батнике? ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 3 Апреля 2012 (изменено) Vadimische, Чтобы переименовать папку нужно взять откуда-то значение имени на который нужно переименовать. Вот я и спрашиваю откуда его взять как ты указываешь этот txt в батнике? md temp set name="отсутсвует значение" ren tmp %name% А вообще можно сразу создавать папку с нужным именем. md %name% ХОВАН, Спасибо! Изменено 3 Апреля 2012 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 4 Апреля 2012 Vadimische, Ну *.txt файлов на компьютере может быть очень много. ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 5 Апреля 2012 (изменено) Vadimische, Ну тогда такой батник. @echo off -- ну это понятно SETLOCAL EnableDelayedExpansion -- для локализации переменных, нужно чтобы в форе переменным присвоения делать. for /f "tokens=1 delims=" %%i in ('dir /b /a:d') do ( -- ищем вокруг себя только папки set folder=%%i --приравниваем к переменной dir /b "!folder!\*.txt">nul && set f=true -- ищем в этой папке любой текстовой и если находим то флажок true-чить if !f!==true ( -- проверяме флажок на верность set f=false -- сразу же убиваем флажок dir /b "!folder!\*.txt">1.txt -- выводим в 1.txt имя найденного txt файла for /F "tokens=1 delims=" %%n in (1.txt) do ( -- шарим 1.txt для вытаскивания имени set tmp=%%n -- приравниваем set tmp=!tmp:.txt=! -- из строки убираем ".txt" чтобы осталось только имя ) if exist 1.txt del /q 1.txt -- удаляем 1.txt ren !folder! !tmp! -- переименовываем ) ) endlocal -- убиваем хэдшотом локализацию (важно именно хэдшотом :)) Есть ограничения: класть батник туда же где и сама папка, причем эта папка должна быть одна и никаких больше. В папке должен быть только один txt файл, и этот файл должен лежать в папке а не в подпаках. Никакой кирилицы. Только латины. Проверял на цифрах. Работает. Изменено 6 Апреля 2012 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 5 Апреля 2012 Vadimische, Написал там же посмотри. Только перед использованием не забудь удалить эти строки. "--" это не комментарии. ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 7 Апреля 2012 (изменено) Vadimische, timeout /t 30 /nobreak /T <таймаут> Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд. /NOBREAK Игнорировать нажатия клавиш, ждать указанное время. Примечание: значение таймаута, равное -1 задает неограниченное время ожидания до нажатия клавиши. В конце концов твой можно сократить до 5-10 строк при помощи for или goto. Изменено 7 Апреля 2012 пользователем Starter ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 8 Апреля 2012 Vadimische, timeout действует в win7. @echo off set /a num=10 :sch cls @echo. @echo %num% ping -n 1 -w 1000 192.168.254.254>nul -n 1 set /a num=%num%-1 if %num% gtr -1 (goto sch) ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 9 Апреля 2012 Vadimische, EQL - равно NEQ - не равно LSS - меньше LEQ - меньше или равно GTR - больше GEQ - больше или равно, ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение
Starter 238 Опубликовано 4 Июня 2012 Wookie, Так? ЯДиск папка с крутым схроном! Поделиться этим сообщением Ссылка на сообщение