Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] скрипт должен лезть в папку vers и искать там фалы (http://forum.oszone.net/showthread.php?t=239051)

vlad_exe@vk 22-07-2012 02:08 1956354

скрипт должен лезть в папку vers и искать там фалы
 
Сам скрипт будет частью одного бат файла , скрипт должен лезть в папку vers и искать там фалы вот с такими названиями 1.0.0 1.6.1 1.0.3 3.0.1 5.0.4 в общем их там много расширение они как такого не имеют , это как бы версии и скрипт обязан выводить небольшое число Вот так :

Код:

Echo Версия %version%
P. S. с русской кодировкой нет проблем

HeLp PlEaSe

AFone 18-08-2012 03:47 1972212

Предлагаю такой вариант, но он ищет только 1 файл.
Код:

@echo off
cd vers
if exist 1.0.0 goto 1.0.0
if exist 1.6.1 goto 1.6.1
//И так далее
goto errvers //На случай если нет совпадений
:1.0.0
@echo Версия: 1.0.0
pause >nul
goto end
:1.6.1
@echo Версия: 1.6.1
pause >nul
goto end
:errvers
@echo Ошибка определения версии!
pause >nul
:end


Iska 18-08-2012 08:07 1972220

Цитата:

Цитата vlad_exe@vk
расширение они как такого не имеют »

Всё, что после последней точки — это и есть расширение.

Что Вам нужно — не понятно.

vlad_exe@vk 27-10-2012 23:47 2013503

Я знаю про ето Iska обясню у меня есть игра и я хочу чтобы она обновлялась через сеть в случаи если выходит новая версия я это розработал на быдло коде выглядит так :



Код:



Set mod=ExE-MODs

if exist settings\version\1.0.0 (
color %col1%
echo. У вас есть обновление 1.0.0
)
)



if not exist settings\version\1.0.0 (
if exist \\-ex-\ExServ\%mod%\version\1.0.0 (
color %col2%
echo.Есть новая версия игры 1.0.0
xcopy \\-ex-\ExServ\%mod%\available\1.0.0 /S /C /H /R /K /Y /Z
copy \\-ex-\ExServ\%mod%\version\1.0.0 settings\version\1.0.0
)
)


И много копий такого скрипта для каждой версии ((((( Как вы поняли ето турпо и занимает много времени на прогон скрипта и имеется граница версий поскольку мне хватило терпения только 1.6.7 версии . Как ето всё упростить ???? вот в чом вопрос ???

Iska 28-10-2012 00:08 2013517

Из письма в ПМ:
Цитата:

Цитата vlad_exe@vk
http://forum.oszone.net/thread-239051.html Помоги в старой теме Плиз .

Цитата:

Цитата vlad_exe@vk
у меня есть игра »

Я рад за Вас. Название её, ссылка на сайт разработчика, ссылка на загрузку, равно как и ссылка на загрузку обновлений, очевидно, зело великая тайна есть.

1. Повторюсь:
Цитата:

Цитата Iska
Что Вам нужно — не понятно. »

2. Наплевательское отношение к знакам грамматике, орфографии и синтаксису вызывает у меня, как правило, аналогичное отношение к потребностям писавшего.

vlad_exe@vk 28-10-2012 01:56 2013552

Прошу прощения за грамматику ибо я с Украины , а Руский в школе нам приподавали только один год , сам того незнаю почему .

Игра тут не имеет значения это хотя это СS 1.6 ето сборка для людей в моей ланке .

Это типа скрипт для апдейта любой игры,проги

Работает так :
Код:


И так в папке с игрой находится сам батник который после проверки на обновления щапустит саму игру через старт .
Сам скрипт :
Заходит в сетевую папку моего компа \\-ex-\ExServ\ExE-MODs\version\
И если там есть файл допустим 1.2.4
Ищет его анолог в папке с игрой сstrike\settings\version\
N если он там есть то продолжает роботу в поисках 1.2.5 ; 1.2.6;1.2.7;1.2.8 и т.д.
А если есть то xcopy \\-ex-\ExServ\ExE-MODs\aval\1.2.4  /S /C /H /R /K /Y /Z

aval папка с обновлениями

Вот так примерно оно рботает сейчас (((
Но ето как вы поняли - ну и все погрешности я написал выше .

Как упростить и не делать много етого тупого скрипта.

П.С. Еще раз прошу прощения за bad Russian .

Или искать версии в игре в сетевой папке в txt документе

Чтобы оно выглядили так :

Код:

1.2.3
1.2.4
1.2.5
1.2.6


Iska 28-10-2012 04:03 2013576

Цитата:

Цитата vlad_exe@vk
Прошу прощения за грамматику ибо я с Украины , а Руский в школе нам приподавали только один год , сам того незнаю почему . »

Ну, родной-то язык Вам явно преподавали больше, нежели, чем один год: запятые учили расставлять?


vlad_exe@vk, я вряд ли смогу Вам чем-либо помочь, поскольку не понимаю, что нужно сделать. Сожалею.

vserd 28-10-2012 13:42 2013681

Насколько я понял:
1. создай список версий на сервере DIR .... > vlist.txt
2. Для каждой записи из списка версий проверяй что есть файл на клиентском компьютере
For /f %%a .... (vlist.txt) do ..... (
If /I not exist %%a (xcopy ....)
)
вместо ... нужно подставить правильные пути и параметры.

vlad_exe@vk 28-10-2012 16:15 2013746

Vserd, Хммм теперь уже я не понял можно поподробней ?? ))))

vserd 28-10-2012 23:44 2014030

1. создаем список версий на сервере, пишем его в файл.
Либо отдельным скриптом и его ведет владелец сервера
Либо если это шара, можно попробовать использовать команду dir (возможно потребуется мапинг на диск (net use) в нашем батнике.

2. вычитываем содержимое файла версий из п.1 посточно, смотрим что есть такой файл с именем которыйчитали из файла (For /f %%a .... (vlist.txt) do ), нет такого файла (If /I not exist %%a), запускаем копирование (xcopy ).

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

Для начала, воспользуйся cmd /k help dir
cmd /k help for
cmd /k help if
cmd /k help set

читать вдумчиво.

P.S. в какой-то из тем по Bat\cmd либо на этом форуме, либо на ру-борде решали подобную задачу. Можешь поискать, но помне лучше научиться самому.

vlad_exe@vk 29-10-2012 00:23 2014051

СПс попробую


Время: 13:42.

Время: 13:42.
© OSzone.net 2001-