RunProgramParam.vbs - Запуск с параметрами
|
|
Andrey_A | Дата: Суббота, 03.03.2012, 06:54 | Сообщение № 1 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 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
|
Я, как правило, работаю с одним и тем же набором программ. Перед началом работы запускаю их в определенной последовательности вручную. Надоело. Решил сделать кнопку в TC для запуска всего набора программ одним щелчком мышки. Сначала попытался сделать BAT файл. Не получилось - запускалась только первая программа, а остальные не хотели. Нашел в TCImage этот скрипт RunProgramParam.vbs Прописал все как указано в пояснениях внутри скрипта. Но... После запуска открывается только первая по списку программа. Если ее закрыть, то откроется вторая по списку программа и т.д. Т.е. одновременно все программы из списка запускаться не хотят. Программы, которые я пытаюсь запустить, установлены отдельно от ТС.
Хотелось бы узнать, можно при помощи этого скрипта запустить одновременно все программы из списка или для этого нужен другой скрипт?
|
|
| |
asmadeus | Дата: Четверг, 11.04.2013, 20:32 | Сообщение № 3 |
|
прописал в файл список все нужные программы в квадратных скобках ( файл лежит в одной папке со скриптом), сделал кнопку, в параметрах кнопки прописал пути к файлу списку. все запускается нормально
|
|
| |
Vadim | Дата: Суббота, 13.04.2013, 09:11 | Сообщение № 4 |
Рядовой
На сайте с: 28.03.2013
Город: Москва
Сообщений: 9
|
Да, заработало, спасибо.
|
|
| |
Andrey_A | Дата: Суббота, 13.04.2013, 18:02 | Сообщение № 5 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 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 |
|
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
Город: Сочи, Хоста
Сообщений: 7186
Награды: 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
|
Цитата (asmadeus) Да, заработало, спасибо. Поспешил я. Все равно не работает запуск программ через скрипт RunProgramParam.vbs . Запускается первая по списку программа и пока ее не закроешь следующая по списку программа не запустится.
Попытался сделать запуск, используя TCIMG. Если прописывать в файле TCG пути к программам как %COMMANDER_PATH% то они вроде запускаются, а если давать путь от корня диска c:\Program Files\Total Commander\ то не запускаются. А у меня многие программы стоят в c:\Program Files\ но не в ТоталлКоммандере.
|
|
| |
asmadeus | Дата: Вторник, 16.04.2013, 23:11 | Сообщение № 9 |
|
Vadim, используй переменные среды. %PROGRAMFILES% и др. у меня через утилиту работает
Сообщение отредактировал asmadeus - Вторник, 16.04.2013, 23:11 |
|
| |
Vadim | Дата: Среда, 17.04.2013, 23:26 | Сообщение № 10 |
Рядовой
На сайте с: 28.03.2013
Город: Москва
Сообщений: 9
|
Цитата (asmadeus) используй переменные среды. %PROGRAMFILES% и др. у меня через утилиту работает Это-то работает, а вот как быть с этим:
start=%PROGRAMFILES%\Microsoft Office\Office\
Тут пробел и такие пробелы есть у многих папок с программами. Вероятно из-за этого пробела офисные программы у меня и не запускаются? Не запускаются любые программы в названиях папок или файлов которых есть пробелы. Заключение в кавычки "" не помогает.
Сообщение отредактировал Vadim - Среда, 17.04.2013, 23:52 |
|
| |
Andrey_A | Дата: Четверг, 18.04.2013, 00:01 | Сообщение № 11 |
Генералиссимус
На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7186
Награды: 143
Репутация: 125
Аверин Андрей
|
Цитата (Vadim) Это-то работает, а вот как быть с этим: Vadim, в параметрах утилит я исключил пробелы, их легко заменить на ~~
Код start=%PROGRAMFILES%\Microsoft~~Office\Office\
|
|
| |
Vadim | Дата: Четверг, 18.04.2013, 20:36 | Сообщение № 12 |
Рядовой
На сайте с: 28.03.2013
Город: Москва
Сообщений: 9
|
Ух ты! Подставил ~~ вместо пробелов и все заработало! Спасибо, Андрей! Не все программы почему-то захотели загрузиться в той последовательности, какая задана в файле TCG. Я предположил, что это связано с различным временем запуска каждой программы и поставил в TCG после старта каждой программы задержку pause=500 После этого последовательность запуска стала нужной.
Сообщение отредактировал Vadim - Четверг, 18.04.2013, 20:41 |
|
| |