Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

Форумы RDA _ Флейм _ Нужен хелп

Автор: Vodochnik Четверг, 20 Мая 2004, 17:19

Текс... решил я переложить диски из слим-кейсов в папки, заодно хотелось бы в каталог засунуть тех. инфу по фильмам... кто такое делал уже?
Точно знаю что делали... задача такая... максимально автоматизировать след. процесс

1. Я достаю диск и пихаю его в дисковод.
2. Некое приложение (а в идеале 2 приложения: апп Х + АвиИнфо Старсофта) выдаёт мне АВТОМАТОМ инфу о тех.параметрах файла(ов) которые я пишу в уже существующий каталог.
3. При втыкании нового диска желательно чтобы приложения не открывали нового окна (т.е. чтобы не накапливалось 50 окон того же АвиИнфо)

Хто чего может посоветовать в этом контексте?

Не флеймить блянах! winkold.gif

Автор: Yanch Четверг, 20 Мая 2004, 17:49

А что за каталог, блянах? zub.gif

Автор: Bubble-Gum Четверг, 20 Мая 2004, 21:59

авиинфо+ cmd

info.bat
---------------------------------------
:start
chdir /d путь к авиинфо
aviinfo.exe c:\*.avi -a -d->infofail.txt
GOTO end

:end
pause

Автор: Leshii Пятница, 21 Мая 2004, 0:09

2 Bubble-Gum:
а еще можно даже приписать:
echo Please insert next CD and press any key or press CTRL-C
и (после паузы) goto start

Автор: Tallarna Пятница, 21 Мая 2004, 8:46

Ну и второе приложение, следящее за файлом инфофайл.тхт, читающее, разбирающее по полям, и пишущее инфу в базу данных.... cwm1.gif

ПыСы: А если вместо символа перенаправления в файл > поставить его как >> (т.е. 2 раза), то файл не будет заново переписан, а инфа добавится в конец (типа append winkold.gif)

Автор: Vodochnik Суббота, 22 Мая 2004, 19:51

Проблема возникнет на файлах типа AVSEQ01.DAT
Я потом не определю что куда....
Каталог - табля в мускуле

Автор: Vodochnik Суббота, 22 Мая 2004, 19:52

А как сделать так чтобы батник спрашивал номер диска и его писал в инфофаыл тоже (аппендом ессна а не > winkold.gif )

Автор: Tallarna Суббота, 22 Мая 2004, 21:50

bat1.bat:
-----------
FOR /L %%i IN (%1,1,%2) DO call bat2.bat %%i

bat2.bat:
-----------
echo Number %1 >> infofile.txt
echo ------------ >> infofile.txt
aviinfo.exe c:\*.avi -a -d >>infofile.txt

И запусти:
bat1.bat <NumStart> <NumEnd>
с соотв. параметрами winkold.gif
<NumStart> = Start Number
<NumEnd> = End Number

Example: bat1.bat 3 5

PS. DOS forever!!!! winkold.gif

PPS. Ну, в общем, ты понял winkold.gif Сам разберешься winkold.gif

Автор: Bubble-Gum Суббота, 22 Мая 2004, 22:19

да уж точно smileold.gif
только бы вот комманд туда подсыпали еще
было бы веселее smileold.gif

Автор: Valky Суббота, 22 Мая 2004, 22:28

А у меня так и завис проект, вкотором эта задачка была заложена. Сделал половину, потом решил переписать весь интерфейс, а потом время кончилось, короче, как всегда smileold.gif

ScreenShot --> http://www.nwml.nm.ru/Images/shot.gif

Автор: anton Суббота, 22 Мая 2004, 23:09

кстати, в Ant Movie Catalog вроде есть полу-автоматическое добавление кучи дисков tongue.gif

Автор: Tallarna Воскресенье, 23 Мая 2004, 9:03

QUOTE (Bubble-Gum @ Суббота, 22 Мая 2004, 21:19)
да уж точно smileold.gif
только бы вот комманд туда подсыпали еще
было бы веселее smileold.gif

Зависит от того, чего тебе не хватает winkold.gif

Автор: Vodochnik Понедельник, 24 Мая 2004, 18:48

2 Valky:


dodelat' ne hochesh'? winkold.gif plz smileold.gif Ya bi dazhe kupil winkold.gif

Автор: Valky Понедельник, 24 Мая 2004, 21:41

Хочу и наверное доделаю, только ты, боюсь не дождешься. Времени сейчас совсем нет, а появится, надеюсь, где-нибудь осенью. Если сделаю, то конечно будет бесплатная прога winkold.gif

Автор: Vodochnik Пятница, 28 Мая 2004, 16:22

Так... а кто напишет на ДОСе батничек такого содержания:

1. Спросить номер фильма
2. По нажатию энтер записать в файл введённое значение
3. Запустить АвиИнфо, выплюнуть инфу в файл
4. готу старт smileold.gif

Автор: Vodochnik Пятница, 28 Мая 2004, 17:28

Вот ответ на вопрос winkold.gif

@ECHO OFF
cls
:start
SET /P Disc=Please enter Film number:
echo Number %Disc% >> infofile.txt
echo ------------ >> infofile.txt
aviinfo.exe E:\*.avi -a -d >>infofile.txt
echo Film info successfully writen, please use same Film-number to appenв other discs!
pause
goto start

Автор: Digitus Пятница, 28 Мая 2004, 17:43

2 Vodochnik:
Сам с собой разговариваеш?
Вот до чего водка в больших количествах доводит. cwm4.gif

Автор: Vodochnik Пятница, 28 Мая 2004, 17:53

Харе топик засорять! Я пишу для тех кто, возможно, со временем столкнётся с похожей задачей и найдёт этот топик.

Автор: Digitus Пятница, 28 Мая 2004, 18:06

Всё понял ухожу...... zub.gif

Автор: kuchin Пятница, 28 Мая 2004, 18:22

Обработка всех файлов в каталоге (по просьбе Водки):
start.bat:

CODE
@echo off
cmd /v:on /c test.bat


test.bat:
CODE
@echo off

set list=
for /f %%i in ('dir /b') do @(set list=!list! %%i)
echo %list%

rem vtoroi, bolee prostoi variant:
rem for %i in (*) do set list=!list! %i

Автор: Vodochnik Пятница, 28 Мая 2004, 18:47

Димасу спасибо огромное!
Можно обойтись оказывается и одним файлом, если как-то включить v:on для cmd.exe
я заюзал вот это:
/V:ON Enable delayed environment variable expansion.
this allows a FOR loop to specify !variable! instead of %variable%
expanding the variable at execution time instead of at input time.

/V:OFF Disable delayed environment expansion.

Environment expansion preference can be set permanently in the registry
HKLM | HKCU \Software\Microsoft\Command Processor\DelayedExpansion
Set to either 0x1 or 0x0

Автор: Bubble-Gum Пятница, 28 Мая 2004, 18:49

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

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

_____________________________________

@echo off
call :inet
call :connect
if %connected%==1 (call :mapping) else (call :unmapping)


:: Functions

:connect
ping "ИП-Сервера" | find "TTL" > NUL
if ERRORLEVEL 1 (set connected=0) ELSE (set connected=1)
goto :EOF

:inet
ping www.google.de | find "TTL" > NUL
if ERRORLEVEL 1 (goto :EOF) ELSE (net time \\time.fu-berlin.de /set /yes)
goto :EOF

:mapping
if not exist W:\ (net use W: \\сервер\папка пароль /user:%username% /persistent:yes )
goto :EOF

:unmapping
net use W: /delete
goto :EOF


________________________________________________

Автор: Digitus Пятница, 28 Мая 2004, 19:10

QUOTE (Vodochnik)

Харе топик засорять!

Я ещё позасоряю немного.... biggrinold.gif



QUOTE (Vodochnik)
Вот ответ на вопрос winkold.gif
@ECHO OFF
cls
:start
SET /P Disc=Please enter Film number:

Чтобы ненадо было номер диска писать можно сделать так:

start.bat
CODE
@ECHO OFF
cls
FOR /L %%i IN (1,1,9999) DO call info.bat %%i


info.bat
CODE
@ECHO OFF
cls
echo Insert Disc %1
pause
echo Disc %1 >> infofile.txt
echo ------------ >> infofile.txt
aviinfo.exe E:\*.avi -a -d >>infofile.txt
cls
echo Film info successfully writen!
pause

пробел тока жми и диски вставляй.

ЗЫ. вместо 9999 в start.bat можно указать реальное количество проверяемых дисков.

Автор: Vodochnik Пятница, 28 Мая 2004, 20:08

Так... засоряльщик... фильмы бывают и на двух дисках, а номера у меня не дисков а фильмов winkold.gif Смекаешь? winkold.gif

А вот и рабочий окончательный вариант скрипта после подгонок и тестов.
© МОЙ БЛЯНАХ! Личерам СПРАШИВАТЬ РАЗРЕШЕНИЕ! mad.gif

CODE

@ECHO OFF
cls
:start
SET /P Disc=Please enter Film number:

echo Film Number %Disc% >> gspot.txt
echo ------------ >> gspot.txt
echo Film Number %Disc% >> infofile.txt
echo ------------ >> infofile.txt

aviinfo.exe E:\*.avi -a -d >>infofile.txt

set list=

for /f %%i in ('dir /b e:\') do @(set list=e:\%%i !list!)
echo "%list%"
gspot.exe %list%

echo                                                                 .
echo                                                                 .
echo                                                                 .
echo                                                                 .
echo       1.Bez perevoda
echo       2.Zakadrovij odnogolosij
echo       3.zakadrovij mnogogolosij
echo       4.dubbed
echo       5.goblin
echo                                                                 .
SET /P trans=Please enter art of translation:
echo Perevod: %trans% >> infofile.txt
echo                                                                 .

echo Film info written, please use same film-number to append other discs!
echo                                                                 .          
echo                                                                 .
echo                                                                 .
goto start

Автор: Digitus Пятница, 28 Мая 2004, 20:19

2 Vodochnik:
плохо тестировал tongue.gif

QUOTE
SET /P trans=Please enter art of translation:
echo Perevod: %Disc% >> infofile.txt

так будет надёжнее biggrin.gif
CODE
SET /P trans=Please enter art of translation:
echo Perevod: %trans% >> infofile.txt

Автор: Vodochnik Пятница, 28 Мая 2004, 20:48

Опять засоряешь?! И где ты такой бред нашёл? winkold.gif
Всё там правильно было! tongueold.gif
Хочешь пофлеймить - пиши парсер выходных файлов на ПХП - вот тогда поговорим zub.gif

Автор: Digitus Суббота, 29 Мая 2004, 0:15

2 Vodochnik:
А если так попробовать, может понравится? winkold.gif

CODE
@echo off
cls
set /P n=Please enter first film number :
set /P m=Please enter last film number :

:start
cls
echo.
echo Film Nb.%n% of %m%
echo.
set disk=1
set cdn=1
set /P cdn=Number of disks 2,3,...,28.5 (default 1) :

:loop
cls
echo.
echo Film Nb.%n% of %m%
echo.
echo Insert CD %disk%
pause

echo Film Number %n% >> gspot.txt
echo ------------ >> gspot.txt
echo Film Number %n%    CD%disk% of %cdn% >> infofile.txt
echo ------------ >> infofile.txt

aviinfo.exe E:\*.avi -a -d >>infofile.txt

set list=

for /f %%i in ('dir /b e:\') do @(set list=e:\%%i !list!)
echo "%list%"
gspot.exe %list%

echo.
echo.
echo.
echo       1.Bez perevoda (default)
echo       2.Zakadrovij odnogolosij
echo       3.zakadrovij mnogogolosij
echo       4.dubbed
echo       5.goblin
set trans=1
set /P trans=Please enter art of translation :
echo Perevod: %trans% >> infofile.txt

if not %cdn%==%disk% (set /a disk=%disk%+1
goto loop)

if not %m%==%n% (set /a n=%n%+1
goto start)


ЗЫ. А я и незнаю даже, что такое "парсер выходных файлов" rotfl.gif

Автор: Vodochnik Суббота, 29 Мая 2004, 1:08

в базе не диски а фильмы, соответственно к каждому фильму будет одно поле куда и будет свалена в кучу полная тех.инфа, кому надо - пусть копаются tongueold.gif
Потому что я не вижу практического применения выборкам, разве что чтобы собрать статистику по частоте применения кодеков smileold.gif
А парсер файлов - это такая штука.... эээ... я и сам не очень точно знаю... спроси у гугля winkold.gif
Но парсер мне точно нада winkold.gif Точнее будет надо когда прогоню все диски smileold.gif

Автор: Digitus Суббота, 29 Мая 2004, 1:17

Дык я уже понял что филмы а не диски, я тока добавил чтобы ненадо было вручную номер фильма вводить если конечно нумерация по возростанию.
Единственное изменение внесённое в infofile.txt это вот в этой строчке

CODE
echo Film Number %n%    CD%disk% of %cdn% >> infofile.txt

можно и назад вернуть winkold.gif
CODE
echo Film Number %n% >> infofile.txt

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)