[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Andrey_A, ХарВик, chip642  
Форум » • Total Commander • » ТЕСТИРОВАНИЕ СКРИПТОВ для TC » RunFilesNInProgram.vbs - Запуск по очереди с ограничениями (Запуск программ и файлов)
RunFilesNInProgram.vbs - Запуск по очереди с ограничениями
Andrey_AДата: Суббота, 03.03.2012, 16:27 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7163
Награды: 139
Репутация: 124
Аверин Андрей
Запуск выделенных файлов по очереди в прописанной в скрипте программе с ограничениями по количеству

Code
' RunFilesNInProgram.vbs
'========================   Описание   =====================================
' Запуск выделенных файлов по очереди в прописанной в скрипте программе с ограничениями по количеству
' если расширение файла не совпадает с поддерживаемыми , просто открывается программа
' если перетянуть любой файл на кнопку, то он также откроется в программе
'=======================   Параметры  =====================================
' 1-й параметр: список_файлов.tmp (обязательный)
' 2-й параметр: максимальное количество открытия файлов
'========================   Примеры   =====================================
' %L - открыть выделенные файлы (максимум задаётся в переменной n)
' %L 5 -  открыть выделенные файлы (максимум 5)
' при перетаскивании на кнопку открывается один файл
' Автор:             Аверин Андрей
' Версия:          1.1 ( 30.11.2011 - 01.12.2011)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru
'=================   Изменяемые параметры   ================================
Program = "%COMMANDER_PATH%\AkelPad.exe"    ' программа
LineExt = ";txt;ini;mnu;" ' строка поддерживаемых расширений
n = 10 ' максимальное количество открытия файлов (переопределяется 2-м параметром)
'=========================================================================
Dim WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Cnt = WScript.Arguments.Count : k = 0

Program = GetPath(Program)
If Not FSO.FileExists(Program) Then
   MsgBox "Не верно указана программа", vbOKOnly & vbInformation, "" : WsEnd
End If
If Cnt = 0 Then
   RunProgram : WsEnd
End If
Param = GetPath(WScript.Arguments(0))
If LCase(FSO.GetExtensionName(Param)) = "tmp" Then
   List = Split(FSO.OpenTextFile(Param).ReadAll, vbNewLine)
   If Cnt > 1 Then n = CInt(WScript.Arguments(1))
Else
   Cnt = 1 : RunProgram : WsEnd
End If

For i = 0 To Ubound(List)
   Param = GetPath(List(i))
   Ext = LCase(FSO.GetExtensionName(Param))
   If InStr(LineExt, ";" & Ext & ";") > 0 Then
     Cnt = 1 : k = k + 1 : RunProgram
   End If
   If n =< k Then Exit For
Next
If k = 0 Then
   Cnt = 0 : Param = "" : RunProgram
End If   
WsEnd

Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Sub WsEnd : Set FSO = Nothing : Set WSH = Nothing : WScript.Quit : End Sub

Sub RunProgram
   If Cnt = 1 Then Param = Chr(32) & Chr(34) & Param & Chr(34)
  WSH.Run Chr(34) & Program & Chr(34) & Param , 1, False
End Sub


 
Andrey_AДата: Суббота, 03.03.2012, 16:30 | Сообщение № 2
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7163
Награды: 139
Репутация: 124
Аверин Андрей
Code
' RunFilesNInProgram2.vbs
'========================   Описание   =====================================
' Запуск выделенных файлов по очереди в прописанной в скрипте программе с ограничениями по количеству
' если расширение файла не совпадает с поддерживаемыми , просто открывается программа
' если перетянуть любой файл на кнопку, то он также откроется в программе
'=======================   Параметры  =====================================
' 1-й параметр: список_файлов.tmp (обязательный)
' 2-й параметр: максимальное количество открытия файлов
'========================   Примеры   =====================================
' %L - открыть выделенные файлы (максимум задаётся в переменной n)
' %L 5 -  открыть выделенные файлы (максимум 5)
' при перетаскивании на кнопку открывается один файл
' Автор:             Аверин Андрей
' Версия:          1.1 ( 30.11.2011 - 01.12.2011)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru
'=================   Изменяемые параметры   ================================
Program = "%COMMANDER_PATH%\Programs\Text\WinDjView\WinDjView.exe"    ' программа
LineExt = ";djv;djvu;" ' строка поддерживаемых расширений
n = 5 ' максимальное количество открытия файлов (переопределяется 2-м параметром)
'=========================================================================
Dim WSH
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
Cnt = WScript.Arguments.Count : k = 0

Program = GetPath(Program)
If Not FSO.FileExists(Program) Then
   MsgBox "Не верно указана программа", vbOKOnly & vbInformation, "" : WsEnd
End If
If Cnt = 0 Then
   RunProgram : WsEnd
End If
Param = GetPath(WScript.Arguments(0))
If LCase(FSO.GetExtensionName(Param)) = "tmp" Then
   List = Split(FSO.OpenTextFile(Param).ReadAll, vbNewLine)
   If Cnt > 1 Then n = CInt(WScript.Arguments(1))
Else
   Cnt = 1 : RunProgram : WsEnd
End If

For i = 0 To Ubound(List)
   Param = GetPath(List(i))
   Ext = LCase(FSO.GetExtensionName(Param))
   If InStr(LineExt, ";" & Ext & ";") > 0 Then
     Cnt = 1 : k = k + 1 : RunProgram
   End If
   If n =< k Then Exit For
Next
if k = 0 Then
   Cnt = 0 : Param = "" : RunProgram
End If
WsEnd

Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function
Sub WsEnd : Set FSO = Nothing : Set WSH = Nothing : WScript.Quit : End Sub

Sub RunProgram
   If Cnt = 1 Then Param = Chr(32) & Chr(34) & Param & Chr(34)
  WSH.Run Chr(34) & Program & Chr(34) & Param , 1, False
End Sub


 
Форум » • Total Commander • » ТЕСТИРОВАНИЕ СКРИПТОВ для TC » RunFilesNInProgram.vbs - Запуск по очереди с ограничениями (Запуск программ и файлов)
  • Страница 1 из 1
  • 1
Поиск:

Интеллектуальные права и отказ от ответственности