Starter 238 Опубликовано 5 Апреля 2012 Автор Поделиться Опубликовано 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 ЯДиск папка с крутым схроном! Ссылка на комментарий
Vadimische 515 Опубликовано 5 Апреля 2012 Поделиться Опубликовано 5 Апреля 2012 Starter, Спасибо большое, Очень помог :ny_thumbsup::ny_ph34r_1: Еще не скромный вопросик : Если не затруднит , то можешь написать какое нибудь описание как это работает ( хотя бы по строкам ) - Учится так Учится делать самому :ny_tongue: Ссылка на комментарий
Starter 238 Опубликовано 5 Апреля 2012 Автор Поделиться Опубликовано 5 Апреля 2012 Vadimische, Написал там же посмотри. Только перед использованием не забудь удалить эти строки. "--" это не комментарии. ЯДиск папка с крутым схроном! Ссылка на комментарий
Vadimische 515 Опубликовано 7 Апреля 2012 Поделиться Опубликовано 7 Апреля 2012 Снова здравствуйте ) А как сделать таймер обратного отсчета ( можно и нормального ) с выводом поочередно цифр посекундно ? Сделал вот так, но это слишком громоздко и только на малые числа, хотелось бы уменьшить размер и сделать минут до 5ти посекундно : @echo off title Timer color 0a set a=ping -n 1 -w set b=192.168.254.254 cls echo. echo ~ 10 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 9 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 8 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 7 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 6 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 5 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 4 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 3 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 2 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 1 ~ %a% 1000 %b%>nul -n 1 cls echo. echo ~ 0 ~ %a% 1000 %b%>nul -n 1 pause Ссылка на комментарий
Starter 238 Опубликовано 7 Апреля 2012 Автор Поделиться Опубликовано 7 Апреля 2012 (изменено) Vadimische, timeout /t 30 /nobreak /T <таймаут> Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд. /NOBREAK Игнорировать нажатия клавиш, ждать указанное время. Примечание: значение таймаута, равное -1 задает неограниченное время ожидания до нажатия клавиши. В конце концов твой можно сократить до 5-10 строк при помощи for или goto. Изменено 7 Апреля 2012 пользователем Starter ЯДиск папка с крутым схроном! Ссылка на комментарий
Vadimische 515 Опубликовано 8 Апреля 2012 Поделиться Опубликовано 8 Апреля 2012 Starter В WinXP 32bit команда "timeout" не действует ( по крайней мере у меня ). ---------- В конце концов твой можно сократить до 5-10 строк при помощи for или goto. - Об этом если можно поподробнее :ny_ph34r_1: Ссылка на комментарий
Starter 238 Опубликовано 8 Апреля 2012 Автор Поделиться Опубликовано 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) ЯДиск папка с крутым схроном! Ссылка на комментарий
Vadimische 515 Опубликовано 8 Апреля 2012 Поделиться Опубликовано 8 Апреля 2012 А команда "gtr" что делает ? :ny_ph34r_1: Ссылка на комментарий
Starter 238 Опубликовано 9 Апреля 2012 Автор Поделиться Опубликовано 9 Апреля 2012 Vadimische, EQL - равно NEQ - не равно LSS - меньше LEQ - меньше или равно GTR - больше GEQ - больше или равно, ЯДиск папка с крутым схроном! Ссылка на комментарий
Wookie 7 Опубликовано 2 Июня 2012 Поделиться Опубликовано 2 Июня 2012 А как заменить только одно слово, в файле? https://www.youtube.com/embed/U0no-6tCxhU Канал на "Трубе" Ссылка на комментарий
Starter 238 Опубликовано 4 Июня 2012 Автор Поделиться Опубликовано 4 Июня 2012 Wookie, Так? ЯДиск папка с крутым схроном! Ссылка на комментарий
Vadimische 515 Опубликовано 3 Июля 2012 Поделиться Опубликовано 3 Июля 2012 (изменено) 1 ) А как сделать сравнение 2х имен ( не известных ) по длине названия, чтоб в итоге использовался БАТником файл с более коротким именем ? 2 ) Возможно ли сделать так, чтобы размер шрифта автоматически был "Заглавными" буквами при создании папки с именем например по такому БАТнику : :: Находит худовый [ *_h*.ogf ] фаил и присваивает его имя новой созданой папке игнорируя название мировой модели. @ECHO OFF if exist *_h*.ogf ( goto continue ) else ( exit ) :continue md temp_models SETLOCAL EnableDelayedExpansion dir /b "*_h*.ogf">nul && set f=true if !f!==true ( set f=false dir /b "*_h*.ogf">temp_models.txt for /F "tokens=1 delims=" %%n in (temp_models.txt) do ( set x=%%n set x=!x:_h.ogf=! set x=!x:_hud.ogf=! set x=!x:w_=! set x=!x:wpn_=! ) if exist temp_models.txt del /q temp_models.txt ren temp_models !x! ) endlocal exit Изменено 3 Июля 2012 пользователем Vadimische Ссылка на комментарий
Starter 238 Опубликовано 3 Июля 2012 Автор Поделиться Опубликовано 3 Июля 2012 Vadimische, Извиняй сейчас не могу помощь, скоро в отъезд и дел много нужно сделать. Попробуй отписать на Oszone, создать там тему в разделе cmd\bat. Только не пиши про игру, напиши просто про файлы бэкап ну придумаешь . ЯДиск папка с крутым схроном! Ссылка на комментарий
SТАLKER 0 Опубликовано 27 Июля 2012 Поделиться Опубликовано 27 Июля 2012 Здравствуйте. Подскажите пожалуйста как сделать батник который сперва переименовывает текстуры а затем запускает игру? Это реально? Ищу хабар. Ссылка на комментарий
Vadimische 515 Опубликовано 28 Июля 2012 Поделиться Опубликовано 28 Июля 2012 SТАLKER По конкретней опиши что нужно. Во что переименовывать и какие текстуры. Ссылка на комментарий
SТАLKER 0 Опубликовано 28 Июля 2012 Поделиться Опубликовано 28 Июля 2012 Переименовать текстуры артефактов они у меня под цифрами 1, 2 ......67, переименовывались по кругу 1 в 2, 2 в 3 и так далее Ищу хабар. Ссылка на комментарий
Vadimische 515 Опубликовано 29 Июля 2012 Поделиться Опубликовано 29 Июля 2012 (изменено) SТАLKER Например вот такой БАТник ( просто пропиши свои пути вверу и все ) : @ ECHO OFF set GameFolder="D:\S.T.A.L.K.E.R" set GameTextures="D:\S.T.A.L.K.E.R\gamedata\textures" md %GameFolder%\temp for /l %%i in (1,1,67) do move %GameTextures%\%%i.dds %GameFolder%\temp\%%i.dds set /a num1=68 set /a num2=67 :sch set /a num1=%num1%-1 set /a num2=%num2%-1 :: echo %num1% %num2% // отладочная строка для проверки соответствия номеров move %GameFolder%\temp\%num1%.dds %GameTextures%\%num2%.dds if %num2% gtr 1 (goto sch) move %GameFolder%\temp\1.dds %GameTextures%\67.dds del /F /Q .\%GameFolder%\temp start %GameFolder%\bin\XR_3DA.exe exit П.С. Starter проверь на правильность написания БАТника плиз :ny_ph34r_1: Добавлено через 37 мин.: Вот еще организовал кое что : @ECHO OFF title "Start Menu" Color 0A echo. echo 1 ) PUNKT_1 echo 2 ) PUNKT_2 echo 3 ) PUNKT_3 echo 4 ) PUNKT_4 echo. :error_number set /p userinp=Please enter section number [1/2/3/4], Quit [q] : set userinp=%userinp:~0,1% if "%userinp%"=="1" goto punkt_1 if "%userinp%"=="2" goto punkt_2 if "%userinp%"=="3" goto punkt_3 if "%userinp%"=="4" goto punkt_4 if "%userinp%"=="q" goto and echo. Color 0C echo !!! ERROR SECTION NUMBER !!! echo. goto error_number :: :PUNKT_1 echo PUNKT_1 = OK goto and :: :PUNKT_2 echo PUNKT_2 = OK goto and :: :PUNKT_3 echo PUNKT_3 = OK goto and :: :PUNKT_4 echo PUNKT_4 = OK :and pause exit Преимущество в том , что можно сделать сколько угодно пунктов. Изменено 29 Июля 2012 пользователем Vadimische Ссылка на комментарий
Starter 238 Опубликовано 6 Августа 2012 Автор Поделиться Опубликовано 6 Августа 2012 (изменено) Vadimische, Ну если работает значит всё правильно . Я бы так сделал (не проверял код): set /a pim=0 :pvtr set /a pim=pim+1 set /a vim=pim+1 ren %pim%.dds %vim%.dds if pim lss 67 goto pvtr Кстати насчёт меню: есть у меня перепатчер игры на скрипте bat написан. Там как раз есть меню. Жаль исходник не сохранился. Вот ссылка если интересно. Изменено 6 Августа 2012 пользователем Starter ЯДиск папка с крутым схроном! Ссылка на комментарий
Strelok_124 0 Опубликовано 23 Августа 2012 Поделиться Опубликовано 23 Августа 2012 Доброго времени суток! Можете помочь создать батник, чтобы он проверял модели (формат .ogf и находящиеся в папке или подпапках с батником), и в отдельный текст (формат .txt) записывал к какой модели привязаны какие текстуры (с путём от папки texture)? Ссылка на комментарий
Vadimische 515 Опубликовано 24 Августа 2012 Поделиться Опубликовано 24 Августа 2012 Strelok_124 Просто батником такое сделать вряд ли получится. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти