[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Andrey_A, ХарВик, chip642  
RunProgramParam.vbs - Запуск с параметрами
Andrey_AДата: Суббота, 03.03.2012, 06:54 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
Запуск программ, скриптов, батников со СКОЛЬКО УГОДНО параметрами из файл списка ПО ОЧЕРЕДИ

Code
' RunProgramParam.vbs
'========================   Описание   ========================================
' Запуск программ, скриптов, батников со СКОЛЬКО УГОДНО параметрами из файл списка ПО ОЧЕРЕДИ
'=======================  Дополнение ========================================
' Программа и параметры в файл списке обрамить в квадратные скобки [ ] [ ]
' Пример:
' [%COMMANDER_PATH%\Utilities\Scripting\AutoIt\AutoIt3.exe] [%COMMANDER_PATH%\Scripts\TextWork\CopyXlsInText.au3] [2] [1] [2] [0] [1] [%COMMANDER_PATH%\Files\Lists\CreateMenu\WcmMenuImage.xlsx] [%COMMANDER_PATH%\LANGUAGE\Wcmd_Rus.ini] [1]
' [%COMMANDER_PATH%\Files\Bat\CopyTcFilesFromTc.bat] [%COMMANDER_PATH%\Files\Bat\]
'========================  Параметры ========================================
' В параметрах вызова должно быть прописано: {путь к файл списку}
' Пример:  "%%COMMANDER_PATH%%\Files\Lists\CreateMenu\RunWcmMenu.txt"
'
' Автор:             Аверин Андрей
' Версия:          1.1 (2010)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru
'=========================================================================
Option Explicit
Dim WSH, ListFile, SelFile, Program, Param, FF, Data, i, Line, PData
Set WSH = CreateObject("WScript.Shell")

FF = GetPath(WScript.Arguments(0))
Set ListFile = CreateObject("Scripting.FileSystemObject").OpenTextFile(FF, 1)

Do While Not ListFile.AtEndOfStream
   SelFile = ListFile.ReadLine
   SelFile = Mid(SelFile, 2, Len(SelFile) - 2)
   Data = Split(SelFile, "] [")

   For i = 0 To Ubound(Data)
     If Mid(Data(i), 1, 1) = "%" Then
       PData = GetPath(Data(i))
     Else
       PData = Data(i)
     End if
     If Right(Data(i), 1) = "\" Then PData = PData & "\"
     Line = Line & PData & Chr(34) & Chr(32) & Chr(34)
   Next

   WSH.Run Chr(34) & Line & Chr(34), 2, True
   Line = ""
Loop

ListFile.Close : Set ListFile = Nothing : Set WSH = Nothing : WScript.Quit
Function GetPath(pPath) : GetPath = WSH.ExpandEnvironmentStrings(pPath) : End Function


 
VadimДата: Четверг, 11.04.2013, 00:08 | Сообщение № 2
Рядовой

На сайте с: 28.03.2013
Город: Москва
Сообщений: 9
Награды: 0
Репутация: 0
Я, как правило, работаю с одним и тем же набором программ. Перед началом работы запускаю их в определенной последовательности вручную.
Надоело. Решил сделать кнопку в TC для запуска всего набора программ одним щелчком мышки.
Сначала попытался сделать BAT файл. Не получилось - запускалась только первая программа, а остальные не хотели.
Нашел в TCImage этот скрипт RunProgramParam.vbs Прописал все как указано в пояснениях внутри скрипта. Но...
После запуска открывается только первая по списку программа. Если ее закрыть, то откроется вторая по списку программа и т.д.
Т.е. одновременно все программы из списка запускаться не хотят.
Программы, которые я пытаюсь запустить, установлены отдельно от ТС.

Хотелось бы узнать, можно при помощи этого скрипта запустить одновременно все программы из списка или для этого нужен другой скрипт?
 
asmadeusДата: Четверг, 11.04.2013, 20:32 | Сообщение № 3
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
прописал в файл список все нужные программы в квадратных скобках ( файл лежит в одной папке со скриптом), сделал кнопку, в параметрах кнопки прописал пути к файлу списку. все запускается нормально
 
VadimДата: Суббота, 13.04.2013, 09:11 | Сообщение № 4
Рядовой

На сайте с: 28.03.2013
Город: Москва
Сообщений: 9
Награды: 0
Репутация: 0
Да, заработало, спасибо.
 
Andrey_AДата: Суббота, 13.04.2013, 18:02 | Сообщение № 5
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
Можно скриптом, так же можно утилитой TCIMG

В утилите более гибкие настройки, есть возможность:
- скрыть процесс
- ожидать закрытие
- связь с буфером обмена
- запуск в зависимости разрядности системы
- ввод дополнительной информации
- поддержка бесконечного количества параметров + связь со списками
- пауза
- и многое другое

в файле TCIMG.tcg прописать
Код
[tm_StartPrograms]
  ;; пример запуска с различными параметрами и методами
[tm_StartPrograms]
start=%PROGRAMFILES%\Windows~~NT\Accessories\wordpad.exe ;; запуск wordpad.exe
start=%COMMANDER_PATH%\Programs\Players\VLC\vlc.exe||&&wait ;; ожидать закрытия программы
start=%COMMANDER_PATH%\Programs\Cleaners\Ccleaner\CCleaner.exe!!%COMMANDER_PATH%\Programs\Cleaners\Ccleaner\CCleaner64.exe ;; запуск CCleaner в зависимости от разрядности системы
pause=5000 ;; пауза перед вызовом следующнй программы
start=%%COMMANDER_PATH%%\Test.bat||&&hide ;; запустить батник, скрыть окно


кнопка запуска
Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
tcimg=$tmtm_StartPrograms
%COMMANDER_PATH%\TCIMG.exe
TCIMG

-1


для более сложных операций, есть команда $pm_

Код

  ;; пример запуска с различными параметрами и методами
[pm_StartPrograms]
start=OdfToTxt||list<%L>||/ANSI||/Out=%tpath<4>.txt||&&hide||&&wait ;; выделенные файлы .OD* .OT* .SX* .ST* Конвертировать  в .TXT (ANSI)
start=%COMMANDER_PATH%\Plugins\wcx\MultiArc\upx.exe||-9||--lzma||--compress-icons=0||list<%L>||&&hide||&&wait||progres<> ;; сжать выделенные файлы с помощью UPX
start=RAR||-IBCK||a||-hp[input=BOX52]||-m5||-ms||-idc,d,p,q||-cfg-||-o+||-c-||-s||-ep1||%p''%O''.rar||@%L||&&wait||upd<1> ;; создать зашифрованный архив именем обекта под курсором, выделенных объектов в ТЕКУЩЕЙ панели (пароль вводится в диалоге)


 
asmadeusДата: Воскресенье, 14.04.2013, 03:59 | Сообщение № 6
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
ERROR in line 6763 при использовании утилиты и таких команд



Код
  ;; пример запуска с различными параметрами и методами  
[tm_StartPrograms]  
start=%COMMANDER_PATH%\Programs\Internet\MirandaIM\Miranda32.exe
start=%COMMANDER_PATH%\Programs\Internet\The_Bat!\TheBatPortable.exe
start=%COMMANDER_PATH%\Programs\Internet\Firefox\FirefoxPortable.exe
start=%COMMANDER_PATH%\Programs\Internet\Opera_AC\OperaLauncher.exe


Код
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\TCIMG.exe
tcimg=$tmtm_StartPrograms
%COMMANDER_PATH%\TCIMG.exe
Запуск моих программ

-1
-1
 
Andrey_AДата: Понедельник, 15.04.2013, 04:30 | Сообщение № 7
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
Цитата (asmadeus)
ERROR in line 6763 при использовании утилиты и таких команд

Это не ошибка утилиты.
1. Либо этой секции нет в TCIMG.tcg
2. Либо стоят пробелы или дополнительные знаки после [tm_StartPrograms] (в вашем примере это видно)
уберите пробелы и заработает

TCIMG.tcg - это почти стандартный ini файл,где считывание происходит секциями.


 
VadimДата: Вторник, 16.04.2013, 22:13 | Сообщение № 8
Рядовой

На сайте с: 28.03.2013
Город: Москва
Сообщений: 9
Награды: 0
Репутация: 0
Цитата (asmadeus)
Да, заработало, спасибо.

Поспешил я. Все равно не работает запуск программ через скрипт RunProgramParam.vbs . Запускается первая по списку программа и пока ее не закроешь следующая по списку программа не запустится.

Попытался сделать запуск, используя TCIMG. Если прописывать в файле TCG пути к программам как %COMMANDER_PATH% то они вроде запускаются, а если давать путь от корня диска c:\Program Files\Total Commander\ то не запускаются. А у меня многие программы стоят в c:\Program Files\ но не в ТоталлКоммандере.
 
asmadeusДата: Вторник, 16.04.2013, 23:11 | Сообщение № 9
Генералиссимус

На сайте с: 14.12.2012
Город: Кривой Рог
Сообщений: 1375
Награды: 29
Репутация: 32
Vadim, используй переменные среды. %PROGRAMFILES% и др. у меня через утилиту работает

Сообщение отредактировал asmadeus - Вторник, 16.04.2013, 23:11
 
VadimДата: Среда, 17.04.2013, 23:26 | Сообщение № 10
Рядовой

На сайте с: 28.03.2013
Город: Москва
Сообщений: 9
Награды: 0
Репутация: 0
Цитата (asmadeus)
используй переменные среды. %PROGRAMFILES% и др. у меня через утилиту работает

Это-то работает, а вот как быть с этим:

start=%PROGRAMFILES%\Microsoft Office\Office\

Тут пробел и такие пробелы есть у многих папок с программами. Вероятно из-за этого пробела офисные программы у меня и не запускаются?
Не запускаются любые программы в названиях папок или файлов которых есть пробелы. Заключение в кавычки "" не помогает.


Сообщение отредактировал Vadim - Среда, 17.04.2013, 23:52
 
Andrey_AДата: Четверг, 18.04.2013, 00:01 | Сообщение № 11
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7191
Награды: 143
Репутация: 125
Аверин Андрей
Цитата (Vadim)
Это-то работает, а вот как быть с этим:

Vadim, в параметрах утилит я исключил пробелы, их легко заменить на ~~

Код
start=%PROGRAMFILES%\Microsoft~~Office\Office\


 
VadimДата: Четверг, 18.04.2013, 20:36 | Сообщение № 12
Рядовой

На сайте с: 28.03.2013
Город: Москва
Сообщений: 9
Награды: 0
Репутация: 0
Ух ты! Подставил ~~ вместо пробелов и все заработало! Спасибо, Андрей!
Не все программы почему-то захотели загрузиться в той последовательности, какая задана в файле TCG.
Я предположил, что это связано с различным временем запуска каждой программы и поставил в TCG после старта каждой программы задержку pause=500
После этого последовательность запуска стала нужной.


Сообщение отредактировал Vadim - Четверг, 18.04.2013, 20:41
 
  • Страница 1 из 1
  • 1
Поиск:

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