Страница 1 из 1

Автоматизация работы с VirtualDub

Добавлено: Ср апр 18, 2007 23:31
LA_
необходимо автоматизировать работу с VirtualDub по сжатию файлов.
в настощий момент есть следующее в меню запуск:
команда: D:\Progs\VirtualDub\VirtualDub.exe
параметры: /s"D:\Progs\VirtualDub\conv760.vcf" /p%P%N,%O_mp4.%E /r /x
путь запуска: %P
данная команда сжимает текущий выделенный файл (*.avi) в файл вида *_mp4.avi.
Проблема в том, что это работает только с одним файлом. Нужно же сделать работу со всем выделенными файлами в виде очереди (т.е. в одной командной строке должны передаваться сразу все файлы (или должен создаваться joblist?), чтобы обрабатывались файлы не все сразу, параллельно, а последовательно
VirtualDub поддерживает следующие параметры
s <script> -- run script
/c -- clear job list
/r -- run job list
/x -- exit when jobs completed
/h -- disable crash handler
/p <src>,<dst> -- add batch job (file)
/b <src>,<dst> -- add batch job (directory)
/F <filter> -- load filter (note: uppercase F)
/fsck -- check the disassembler by crashing

Добавлено: Пт апр 20, 2007 20:56
skole
если я правильно разобрался с параметрами ком строки, то вот код на vbs

Код: Выделить всё

Dim FSO, WSH, TempFile

Set WSH = CreateObject("WScript.Shell")
Set TempFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1)
Set FSO = CreateObject("Scripting.FileSystemObject")

Program_Files = WSH.ExpandEnvironmentStrings("%ProgramFiles%")
Exe = (chr(34) & Program_Files + "\VirtualDub\VirtualDub.exe" & chr(34))

Do While Not TempFile.AtEndOfStream
File = TempFile.ReadLine
WSH.Run Exe & "/s""D:\Progs\VirtualDub\conv760.vcf""" & " " & "/p" & File & "," & File+"_mp4.avi" & " " & "/r" & "/x"
Loop
в параметрах кнопки или строки запуска укажи "%L" именно в кавычках

Добавлено: Пн апр 23, 2007 00:11
LA_
спасибо!
но не работает так, как надо :)
исправил. теперь скрипт запускает процессинг файлов последовательно, а не одновременно (исправлены параметры команды Run - object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) , также исправлены параметры командной строки

Код: Выделить всё

Dim FSO, WSH, TempFile

Set WSH = CreateObject("WScript.Shell")
Set TempFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1)
Set FSO = CreateObject("Scripting.FileSystemObject")

Exe = (chr(34) & "D:\Progs\VirtualDub\VirtualDub.exe" & chr(34))

Do While Not TempFile.AtEndOfStream
File = TempFile.ReadLine
Return = WSH.Run (Exe & " /s""D:\Progs\VirtualDub\conv760.vcf""" & " " & "/p""" & File & """,""" & File+"_mp4.avi""" & " " & "/r" & "/x", 1, true)
Loop

Добавлено: Пн апр 23, 2007 20:12
skole
2LA_
ну я примерно набросал ))) с параметрами ком строки особо не разбирался ))) просто дал основу для размышления