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

Строй-bat

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

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 файл, и этот файл должен лежать в папке а не в подпаках. Никакой кирилицы. Только латины. Проверял на цифрах. Работает.

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

ЯДиск папка с крутым схроном!

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


Ссылка на сообщение
Поделиться на других сайтах

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

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

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


Ссылка на сообщение
Поделиться на других сайтах
Vadimische, Написал там же посмотри. Только перед использованием не забудь удалить эти строки. "--" это не комментарии.

ЯДиск папка с крутым схроном!

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


Ссылка на сообщение
Поделиться на других сайтах

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

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

timeout /t 30 /nobreak

/T <таймаут> Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд.

/NOBREAK Игнорировать нажатия клавиш, ждать указанное время.

Примечание: значение таймаута, равное -1 задает неограниченное время

ожидания до нажатия клавиши.

 

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

 

 

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

ЯДиск папка с крутым схроном!

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


Ссылка на сообщение
Поделиться на других сайтах

Starter

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

----------

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

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


Ссылка на сообщение
Поделиться на других сайтах

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)

 

 

ЯДиск папка с крутым схроном!

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


Ссылка на сообщение
Поделиться на других сайтах

А команда "gtr" что делает ? :ny_ph34r_1:

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


Ссылка на сообщение
Поделиться на других сайтах

Vadimische,

EQL - равно

NEQ - не равно

LSS - меньше

LEQ - меньше или равно

GTR - больше

GEQ - больше или равно,

 

ЯДиск папка с крутым схроном!

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


Ссылка на сообщение
Поделиться на других сайтах

А как заменить только одно слово, в файле?

https://www.youtube.com/embed/U0no-6tCxhU

Канал на "Трубе"

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


Ссылка на сообщение
Поделиться на других сайтах
Wookie, Так?

ЯДиск папка с крутым схроном!

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


Ссылка на сообщение
Поделиться на других сайтах

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

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


Ссылка на сообщение
Поделиться на других сайтах
Vadimische, Извиняй сейчас не могу помощь, скоро в отъезд и дел много нужно сделать. Попробуй отписать на Oszone, создать там тему в разделе cmd\bat. Только не пиши про игру, напиши просто про файлы бэкап ну придумаешь :) .

ЯДиск папка с крутым схроном!

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


Ссылка на сообщение
Поделиться на других сайтах

Здравствуйте.

Подскажите пожалуйста как сделать батник который сперва переименовывает текстуры а затем запускает игру? Это реально?

Ищу хабар.

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


Ссылка на сообщение
Поделиться на других сайтах

SТАLKER

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

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


Ссылка на сообщение
Поделиться на других сайтах

Переименовать текстуры артефактов они у меня под цифрами 1, 2 ......67, переименовывались по кругу 1 в 2, 2 в 3 и так далее

Ищу хабар.

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


Ссылка на сообщение
Поделиться на других сайтах

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

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


Ссылка на сообщение
Поделиться на других сайтах

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 написан. Там как раз есть меню. Жаль исходник не сохранился. Вот ссылка если интересно.

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

ЯДиск папка с крутым схроном!

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


Ссылка на сообщение
Поделиться на других сайтах

Доброго времени суток! Можете помочь создать батник, чтобы он проверял модели (формат .ogf и находящиеся в папке или подпапках с батником), и в отдельный текст (формат .txt) записывал к какой модели привязаны какие текстуры (с путём от папки texture)?

32481252.f.500.500.jpg

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


Ссылка на сообщение
Поделиться на других сайтах

Strelok_124

Просто батником такое сделать вряд ли получится.

 

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


Ссылка на сообщение
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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