Vadimische 515 Опубликовано 3 Апреля 2012 Здравствуйте :ny_ph34r_1: Интересует вопрос, а как сделать БАТ_ник который бы создавал одноименную папку с присутствующим файлом ( например : Имеем фаил "123.txt" - нужно создать папку с таким же названием "123.txt" ) ? Заранее Спасибо ) Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 3 Апреля 2012 А как ты указываешь файл в батнике? Всмысле ? Я просто в этом не особо разбираюсь ) Пробовал делать так : md temp ren temp *.txt ... результат никакой Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 3 Апреля 2012 Starter, Извиняюсь, но совсем забыл уточнить что имя файла постоянно будет меняться и по этому команда "SET" не подходит т.к. она требует конкретное название на сколько я понял, мне же нужно что бы фаил сначала находился по расширению и уже при этом определялось его нынешнее имя. :ny_ph34r_1: Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 4 Апреля 2012 Ну в моем случае он будет все время только один, но под разным именем :ny_ph34r_1: Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 4 Апреля 2012 ХОВАН, Спасибо :ny_ph34r_1: , но мне хотелось бы реализовать эту функцию именно с помощью BAT файла без сторонних приложений. Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 5 Апреля 2012 Starter, Спасибо большое, Очень помог :ny_thumbsup::ny_ph34r_1: Еще не скромный вопросик : Если не затруднит , то можешь написать какое нибудь описание как это работает ( хотя бы по строкам ) - Учится так Учится делать самому :ny_tongue: Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 8 Апреля 2012 Starter В WinXP 32bit команда "timeout" не действует ( по крайней мере у меня ). ---------- В конце концов твой можно сократить до 5-10 строк при помощи for или goto. - Об этом если можно поподробнее :ny_ph34r_1: Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 8 Апреля 2012 А команда "gtr" что делает ? :ny_ph34r_1: Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 28 Июля 2012 SТАLKER По конкретней опиши что нужно. Во что переименовывать и какие текстуры. Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 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 Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 24 Августа 2012 Strelok_124 Просто батником такое сделать вряд ли получится. Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 24 Августа 2012 Strelok_124 Потому что не получится так просто вывести бинарный фаил в текстовый вид, да же если как то получится то по каким критериям вести поиск текстур ( постоянно разные и да же без расширения ) Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 27 Августа 2012 Strelok_124 ВОТ пока только удалось сделать в виде приложения - выводит из модели текстуры и анимации, но это только сырая версия Ограничения : в папке с программой должна быть только одна ogf модель помещенная туда вручную :ny_ph34r_1: Starter, Сможешь доработать так чтобы в листе Textures.txt заменить во всех строках фразу "Map_Ka" на "Textures\" и в листе Animations.txt убрать расширения ".smd" из имен. Добавлено через 3 мин.: Strelok_124 ВОТ пока только удалось сделать в виде приложения - выводит из модели текстуры и анимации, но это только сырая версия Ограничения : в папке с программой должна быть только одна ogf модель помещенная туда вручную :ny_ph34r_1: Starter, Сможешь доработать так чтобы в листе Textures.txt заменить во всех строках фразу "Map_Ka" на "Textures\" и в листе Animations.txt убрать расширения ".smd" из имен. Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 27 Августа 2012 Задача решена - теперь БАТник выглядит вот так : @ECHO OFF if exist *.ogf ( goto continue ) else exit :continue for %%a in ("*.ogf") do set nameogf=%%a set name=%nameogf:.ogf=% @bin\ogf2smd.exe %nameogf% @bin\ogf2obj.exe %nameogf% %name%.obj del /F /Q smd\reference.smd for %%b in ("smd\*.smd") do ren %%b %%~nb md %name% dir /B smd\ > "%name%\Animations.txt" set find=Map_Ka set repl=Gamedata\textures\ setlocal enabledelayedexpansion for /F "tokens=* delims=," %%c in ('Findstr /I "map_ka" ogfmodel.mtl') do ( set text=%%c set text=!text:%find% =%repl%! @echo !text!>> %name%\Textures.txt ) endlocal del /F /Q *.obj *.mtl *.log rmdir /S /Q smd :: move %nameogf% %name%\ exit Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 28 Августа 2012 [Может стоит попробовать совместить с конвертером ? Идея такая была, но я пока не знаю как сделать так что бы передать имена анимаций из списка в функцию конвертера по отдельности. Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 28 Августа 2012 ~ Все таки допилил конвертер от Бардака сделав его универсальным с помощью нового БАТника ~ Описание : 1 ) Теперь не нужно вписывать вручную список извлекаемых Skl анимаций, т.к. они будут находиться автоматически 2 ) Извлекается из модели все что можно извлечь "Skl + Skls + Object + Bones", а так же создается "Textures_List.txt" с перечнем используемых моделью текстур 3 ) Все извлеченное будет помещено в отдельную папку с именем самой модели __Примечание ! : Конвертер работает только с одной приложенной к нему моделью ogf ! ССЫЛИЩЕ Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 29 Августа 2012 (изменено) Вопрос : а как выделить только первую строку из списка создаваемым командой DIR из нескольких файлов ? Charsi Спасибо, а есть какие нибудь ключи для батника что бы показало например только список текстур ? Изменено 29 Августа 2012 пользователем Vadimische Поделиться этим сообщением Ссылка на сообщение
Vadimische 515 Опубликовано 29 Августа 2012 (изменено) И еще вопросик : чти конкретно делает команда "tokens" ? - что за подстроки оно определяет :ny_ph34r_1: ( если поставить tokens=1 что будет происходить ? ) Изменено 29 Августа 2012 пользователем Vadimische Поделиться этим сообщением Ссылка на сообщение