Vodochnik
Четверг, 20 Мая 2004, 17:19
Текс... решил я переложить диски из слим-кейсов в папки, заодно хотелось бы в каталог засунуть тех. инфу по фильмам... кто такое делал уже?
Точно знаю что делали... задача такая... максимально автоматизировать след. процесс
1. Я достаю диск и пихаю его в дисковод.
2. Некое приложение (а в идеале 2 приложения: апп Х + АвиИнфо Старсофта) выдаёт мне АВТОМАТОМ инфу о тех.параметрах файла(ов) которые я пишу в уже существующий каталог.
3. При втыкании нового диска желательно чтобы приложения не открывали нового окна (т.е. чтобы не накапливалось 50 окон того же АвиИнфо)
Хто чего может посоветовать в этом контексте?
Не флеймить блянах!
Yanch
Четверг, 20 Мая 2004, 17:49
А что за каталог, блянах?
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
Ну и второе приложение, следящее за файлом инфофайл.тхт, читающее, разбирающее по полям, и пишущее инфу в базу данных....

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

)
Vodochnik
Суббота, 22 Мая 2004, 19:51
Проблема возникнет на файлах типа AVSEQ01.DAT
Я потом не определю что куда....
Каталог - табля в мускуле
Vodochnik
Суббота, 22 Мая 2004, 19:52
А как сделать так чтобы батник спрашивал номер диска и его писал в инфофаыл тоже (аппендом ессна а не >

)
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>
с соотв. параметрами
<NumStart> = Start Number
<NumEnd> = End Number
Example: bat1.bat 3 5
PS. DOS forever!!!!

PPS. Ну, в общем, ты понял

Сам разберешься
Bubble-Gum
Суббота, 22 Мая 2004, 22:19
да уж точно

только бы вот комманд туда подсыпали еще
было бы веселее
Valky
Суббота, 22 Мая 2004, 22:28
А у меня так и завис проект, вкотором эта задачка была заложена. Сделал половину, потом решил переписать весь интерфейс, а потом время кончилось, короче, как всегда

ScreenShot -->
shot.gif
anton
Суббота, 22 Мая 2004, 23:09
кстати, в Ant Movie Catalog вроде есть полу-автоматическое добавление кучи дисков
Tallarna
Воскресенье, 23 Мая 2004, 9:03
QUOTE (Bubble-Gum @ Суббота, 22 Мая 2004, 21:19) |
да уж точно  только бы вот комманд туда подсыпали еще было бы веселее |
Зависит от того, чего тебе не хватает
Vodochnik
Понедельник, 24 Мая 2004, 18:48
2 Valky:
dodelat' ne hochesh'?

plz

Ya bi dazhe kupil
Valky
Понедельник, 24 Мая 2004, 21:41
Хочу и наверное доделаю, только ты, боюсь не дождешься. Времени сейчас совсем нет, а появится, надеюсь, где-нибудь осенью. Если сделаю, то конечно будет бесплатная прога
Vodochnik
Пятница, 28 Мая 2004, 16:22
Так... а кто напишет на ДОСе батничек такого содержания:
1. Спросить номер фильма
2. По нажатию энтер записать в файл введённое значение
3. Запустить АвиИнфо, выплюнуть инфу в файл
4. готу старт
Vodochnik
Пятница, 28 Мая 2004, 17:28
Вот ответ на вопрос

@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:
Сам с собой разговариваеш?
Вот до чего водка в больших количествах доводит.
Vodochnik
Пятница, 28 Мая 2004, 17:53
Харе топик засорять! Я пишу для тех кто, возможно, со временем столкнётся с похожей задачей и найдёт этот топик.
Digitus
Пятница, 28 Мая 2004, 18:06
Всё понял ухожу......
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) |
Харе топик засорять!
|
Я ещё позасоряю немного....
QUOTE (Vodochnik) |
Вот ответ на вопрос  @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
Так... засоряльщик... фильмы бывают и на двух дисках, а номера у меня не дисков а фильмов

Смекаешь?

А вот и рабочий окончательный вариант скрипта после подгонок и тестов.
© МОЙ БЛЯНАХ! Личерам СПРАШИВАТЬ РАЗРЕШЕНИЕ!
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:
плохо тестировал
QUOTE |
SET /P trans=Please enter art of translation: echo Perevod: %Disc% >> infofile.txt
|
так будет надёжнее
CODE |
SET /P trans=Please enter art of translation: echo Perevod: %trans% >> infofile.txt
|
Vodochnik
Пятница, 28 Мая 2004, 20:48
Опять засоряешь?! И где ты такой бред нашёл?

Всё там правильно было!
Хочешь пофлеймить - пиши парсер выходных файлов на ПХП - вот тогда поговорим
Digitus
Суббота, 29 Мая 2004, 0:15
2 Vodochnik:
А если так попробовать, может понравится?

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)
|
ЗЫ. А я и незнаю даже, что такое "парсер выходных файлов"
Vodochnik
Суббота, 29 Мая 2004, 1:08
в базе не диски а фильмы, соответственно к каждому фильму будет одно поле куда и будет свалена в кучу полная тех.инфа, кому надо - пусть копаются
Потому что я не вижу практического применения выборкам, разве что чтобы собрать статистику по частоте применения кодеков

А парсер файлов - это такая штука.... эээ... я и сам не очень точно знаю... спроси у гугля

Но парсер мне точно нада

Точнее будет надо когда прогоню все диски
Digitus
Суббота, 29 Мая 2004, 1:17
Дык я уже понял что филмы а не диски, я тока добавил чтобы ненадо было вручную номер фильма вводить если конечно нумерация по возростанию.
Единственное изменение внесённое в infofile.txt это вот в этой строчке
CODE |
echo Film Number %n% CD%disk% of %cdn% >> infofile.txt |
можно и назад вернуть

CODE |
echo Film Number %n% >> infofile.txt |
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.