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

Строй-bat


Starter

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

Здравствуйте :ny_ph34r_1:

Интересует вопрос, а как сделать БАТ_ник который бы создавал одноименную папку с присутствующим файлом ( например : Имеем фаил "123.txt" - нужно создать папку с таким же названием "123.txt" ) ?

Заранее Спасибо )

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


Ссылка на сообщение
А как ты указываешь файл в батнике?
Всмысле ? Я просто в этом не особо разбираюсь )

Пробовал делать так :

md temp
ren temp *.txt

... результат никакой

 

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


Ссылка на сообщение
Starter, Извиняюсь, но совсем забыл уточнить что имя файла постоянно будет меняться и по этому команда "SET" не подходит т.к. она требует конкретное название на сколько я понял, мне же нужно что бы фаил сначала находился по расширению и уже при этом определялось его нынешнее имя. :ny_ph34r_1:

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


Ссылка на сообщение

Ну в моем случае он будет все время только один, но под разным именем :ny_ph34r_1:

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


Ссылка на сообщение
ХОВАН, Спасибо :ny_ph34r_1: , но мне хотелось бы реализовать эту функцию именно с помощью BAT файла без сторонних приложений.

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


Ссылка на сообщение

Starter, Спасибо большое, Очень помог :ny_thumbsup::ny_ph34r_1:

Еще не скромный вопросик : Если не затруднит , то можешь написать какое нибудь описание как это работает ( хотя бы по строкам ) - Учится так Учится делать самому :ny_tongue:

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


Ссылка на сообщение

Снова здравствуйте ) А как сделать таймер обратного отсчета ( можно и нормального ) с выводом поочередно цифр посекундно ?

Сделал вот так, но это слишком громоздко и только на малые числа, хотелось бы уменьшить размер и сделать минут до 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

В WinXP 32bit команда "timeout" не действует ( по крайней мере у меня ).

----------

В конце концов твой можно сократить до 5-10 строк при помощи for или goto.
- Об этом если можно поподробнее :ny_ph34r_1:

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


Ссылка на сообщение
(изменено)

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

 

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

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


Ссылка на сообщение

SТАLKER

По конкретней опиши что нужно. Во что переименовывать и какие текстуры.

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


Ссылка на сообщение
(изменено)

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

 

Преимущество в том , что можно сделать сколько угодно пунктов.

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

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


Ссылка на сообщение

Strelok_124

Потому что не получится так просто вывести бинарный фаил в текстовый вид, да же если как то получится то по каким критериям вести поиск текстур ( постоянно разные и да же без расширения )

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


Ссылка на сообщение

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" из имен.

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


Ссылка на сообщение

Задача решена - теперь БАТник выглядит вот так :

@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

 

 

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


Ссылка на сообщение
[Может стоит попробовать совместить с конвертером ?
Идея такая была, но я пока не знаю как сделать так что бы передать имена анимаций из списка в функцию конвертера по отдельности.

 

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


Ссылка на сообщение

~ Все таки допилил конвертер от Бардака сделав его универсальным с помощью нового БАТника ~

Описание :

1 ) Теперь не нужно вписывать вручную список извлекаемых Skl анимаций, т.к. они будут находиться автоматически

2 ) Извлекается из модели все что можно извлечь "Skl + Skls + Object + Bones", а так же создается "Textures_List.txt" с перечнем используемых моделью текстур

3 ) Все извлеченное будет помещено в отдельную папку с именем самой модели

__Примечание ! : Конвертер работает только с одной приложенной к нему моделью ogf !

ССЫЛИЩЕ

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


Ссылка на сообщение
(изменено)

Вопрос : а как выделить только первую строку из списка создаваемым командой DIR из нескольких файлов ?

 

Charsi

Спасибо, а есть какие нибудь ключи для батника что бы показало например только список текстур ?

 

 

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

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


Ссылка на сообщение
(изменено)

И еще вопросик : чти конкретно делает команда "tokens" ? - что за подстроки оно определяет :ny_ph34r_1:

( если поставить tokens=1 что будет происходить ? )

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

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


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

×
×
  • Создать...