Текс... решил я переложить диски из слим-кейсов в папки, заодно хотелось бы в каталог засунуть тех. инфу по фильмам... кто такое делал уже?
Точно знаю что делали... задача такая... максимально автоматизировать след. процесс
1. Я достаю диск и пихаю его в дисковод.
2. Некое приложение (а в идеале 2 приложения: апп Х + АвиИнфо Старсофта) выдаёт мне АВТОМАТОМ инфу о тех.параметрах файла(ов) которые я пишу в уже существующий каталог.
3. При втыкании нового диска желательно чтобы приложения не открывали нового окна (т.е. чтобы не накапливалось 50 окон того же АвиИнфо)
Хто чего может посоветовать в этом контексте?
Не флеймить блянах!
А что за каталог, блянах?
авиинфо+ cmd
info.bat
---------------------------------------
:start
chdir /d путь к авиинфо
aviinfo.exe c:\*.avi -a -d->infofail.txt
GOTO end
:end
pause
2 Bubble-Gum:
а еще можно даже приписать:
echo Please insert next CD and press any key or press CTRL-C
и (после паузы) goto start
Ну и второе приложение, следящее за файлом инфофайл.тхт, читающее, разбирающее по полям, и пишущее инфу в базу данных....
ПыСы: А если вместо символа перенаправления в файл > поставить его как >> (т.е. 2 раза), то файл не будет заново переписан, а инфа добавится в конец (типа append )
Проблема возникнет на файлах типа AVSEQ01.DAT
Я потом не определю что куда....
Каталог - табля в мускуле
А как сделать так чтобы батник спрашивал номер диска и его писал в инфофаыл тоже (аппендом ессна а не > )
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. Ну, в общем, ты понял Сам разберешься
да уж точно
только бы вот комманд туда подсыпали еще
было бы веселее
А у меня так и завис проект, вкотором эта задачка была заложена. Сделал половину, потом решил переписать весь интерфейс, а потом время кончилось, короче, как всегда
ScreenShot --> http://www.nwml.nm.ru/Images/shot.gif
кстати, в Ant Movie Catalog вроде есть полу-автоматическое добавление кучи дисков
QUOTE (Bubble-Gum @ Суббота, 22 Мая 2004, 21:19) |
да уж точно только бы вот комманд туда подсыпали еще было бы веселее |
2 Valky:
dodelat' ne hochesh'? plz Ya bi dazhe kupil
Хочу и наверное доделаю, только ты, боюсь не дождешься. Времени сейчас совсем нет, а появится, надеюсь, где-нибудь осенью. Если сделаю, то конечно будет бесплатная прога
Так... а кто напишет на ДОСе батничек такого содержания:
1. Спросить номер фильма
2. По нажатию энтер записать в файл введённое значение
3. Запустить АвиИнфо, выплюнуть инфу в файл
4. готу старт
Вот ответ на вопрос
@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
2 Vodochnik:
Сам с собой разговариваеш?
Вот до чего водка в больших количествах доводит.
Харе топик засорять! Я пишу для тех кто, возможно, со временем столкнётся с похожей задачей и найдёт этот топик.
Всё понял ухожу......
Обработка всех файлов в каталоге (по просьбе Водки):
start.bat:
CODE |
@echo off cmd /v:on /c 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 |
Димасу спасибо огромное!
Можно обойтись оказывается и одним файлом, если как-то включить 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
не совсем в тему но вот тут недавно тоже накарябал скрипт
если вдруг кому понадобится. можно воложить в автостарт его.
когда скрипт запускается, он синхронизирует время на винде с нтп сервером предварительно проверив есть ли соединение с интернетом , а потом если доступны, то мапит сетевые диски. если сервер не доступен, то прерывает соединение.
_____________________________________
@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
________________________________________________
QUOTE (Vodochnik) |
Харе топик засорять! |
QUOTE (Vodochnik) |
Вот ответ на вопрос @ECHO OFF cls :start SET /P Disc=Please enter Film number: |
CODE |
@ECHO OFF cls FOR /L %%i IN (1,1,9999) DO call info.bat %%i |
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 |
Так... засоряльщик... фильмы бывают и на двух дисках, а номера у меня не дисков а фильмов Смекаешь?
А вот и рабочий окончательный вариант скрипта после подгонок и тестов.
© МОЙ БЛЯНАХ! Личерам СПРАШИВАТЬ РАЗРЕШЕНИЕ!
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 |
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 |
Опять засоряешь?! И где ты такой бред нашёл?
Всё там правильно было!
Хочешь пофлеймить - пиши парсер выходных файлов на ПХП - вот тогда поговорим
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) |
в базе не диски а фильмы, соответственно к каждому фильму будет одно поле куда и будет свалена в кучу полная тех.инфа, кому надо - пусть копаются
Потому что я не вижу практического применения выборкам, разве что чтобы собрать статистику по частоте применения кодеков
А парсер файлов - это такая штука.... эээ... я и сам не очень точно знаю... спроси у гугля
Но парсер мне точно нада Точнее будет надо когда прогоню все диски
Дык я уже понял что филмы а не диски, я тока добавил чтобы ненадо было вручную номер фильма вводить если конечно нумерация по возростанию.
Единственное изменение внесённое в infofile.txt это вот в этой строчке
CODE |
echo Film Number %n% CD%disk% of %cdn% >> infofile.txt |
CODE |
echo Film Number %n% >> infofile.txt |
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)