307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
1

Запуск консоли из bat с передачей нескольких параметров в консоль

05.09.2014, 22:53. Показов 24580. Ответов 22
Метки нет (Все метки)

Собственно нужно запустить консоль из батника с параметром "/K" (т.е. после выполнения команд консоль должна остаться) и передать в консоль несколько команд
Сейчас делаю так
Код
cmd.exe /k addon-sdk\bin\activate && cfx run --profiledir="C:\Users\myuser"
Вызов батника из папки - консоль открывается с нужным путем
команда addon-sdk\bin\activate выполняется как надо
а вот cfx run --profiledir="C:\Users\myuser" - нет
выглядит в консоли это дело так
Запуск консоли из bat с передачей нескольких параметров в консоль
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2014, 22:53
Ответы с готовыми решениями:

Запуск программы из bat-файла с передачей данных
Здравствуйте, возникла проблема , не могу разобраться как сделать данную утилиту. У меня есть...

Запуск программы с передачей параметров
Добрый вечер. Подскажите кто знает, у меня есть BAT файл следующего содержания: Pk2RDF.exe...

Запуск процесса с передачей параметров
Здравствуйте. Требуется запустить некий процесс proc несколько раз. И передать ему 2 параметра. Но...

Запуск пограмной строкой с передачей параметров
Подскажите пожалуста, как в Delphi, реализовать запуск приложения из коммандной строки. Передаются...

22
3455 / 1993 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
05.09.2014, 23:06 2
fireday, а так:
Bash
1
cmd.exe /k "addon-sdk\bin\activate && cfx run --profiledir="C:\Users\myuser""
?
1
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
05.09.2014, 23:09  [ТС] 3
ComSpec, нет

можно запустить консоль и узнать id ее ввода?
в нее писать нужные команды (по id)
как это сделать?
0
3455 / 1993 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
05.09.2014, 23:27 4
fireday, а так:
Bash
1
@cmd /c addon-sdk\bin\activate&& cmd /k cfx run --profiledir="C:\Users\myuser"
?
1
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
05.09.2014, 23:45  [ТС] 5
Получилось сделать оба вызова
Запуск консоли из bat с передачей нескольких параметров в консоль

но второй вызов прошел не так как надо
это моя ошибка
перед вызовом cfx нужно перейти в каталог my-addon (cd my-addon)
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
05.09.2014, 23:56  [ТС] 6
Сделал так
Код
@cmd /c addon-sdk\bin\activate && cmd /k cd my-addon && cmd /k cfx run --profiledir="C:\Users\fireday\AppData\Roaming\Mozilla\Firefox\Profiles\6dqq6vn4.default"
вот что вышло
Запуск консоли из bat с передачей нескольких параметров в консоль


так же пробовал без "cmd /k" перед "cfx"

з.ы. почему ты (ничего что не на вы?) перед && убрал пробел? он передается с параметром?
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
06.09.2014, 00:04  [ТС] 7
Что означает символ "@" перед "cmd" ?
0
3455 / 1993 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
06.09.2014, 00:45 8
Цитата Сообщение от fireday Посмотреть сообщение
почему ты (ничего что не на вы?) перед && убрал пробел? он передается с параметром?
В данном случае, думаю, что нет, но такую возможность всегда надо учитывать, поэтому я это делаю автоматически.


Цитата Сообщение от fireday Посмотреть сообщение
Что означает символ "@" перед "cmd" ?
Запрет вывода самих команд этой строки на консоль.

Добавлено через 18 минут
fireday, а если так:
Bash
1
@cmd /c addon-sdk\bin\activate&& cmd /k "cd my-addon&& cfx run --profiledir="%APPDATA%\Mozilla\Firefox\Profiles\6dqq6vn4.default""
?
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
06.09.2014, 20:06  [ТС] 9
Результат:
Запуск консоли из bat с передачей нескольких параметров в консоль


нужно что бы все три команды были выполнены последовательно в одной консоли
сейчас в первой консоли выполняется первая команда и консоль закрывается
если ставлю /k вместо /c, то эффект от команды в консоли сохраняется, но вот остальные две команды не дают эффекта

кажется я понял суть проблемы - амперсанд используется как в bat, так и в cmd
0
3455 / 1993 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
06.09.2014, 20:36 10
fireday, по-моему, в твоём случае всё проще:
Bash
1
@cmd /k "addon-sdk\bin\activate&& my-addon\cfx run --profiledir="%APPDATA%\Mozilla\Firefox\Profiles\6dqq6vn4.default""
.
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
06.09.2014, 21:00  [ТС] 11
ComSpec, cfx это не файл, это комманда
Запуск консоли из bat с передачей нескольких параметров в консоль
0
3455 / 1993 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
06.09.2014, 21:22 12
Цитата Сообщение от fireday Посмотреть сообщение
cfx это не файл, это комманда
Чья команда? "activate.exe"?
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
06.09.2014, 21:37  [ТС] 13
Цитата Сообщение от ComSpec Посмотреть сообщение
Чья команда? "activate.exe"?
это не ехе-шник

все эти команды для запуска среды разработки плагина под firefox
первая команда - запускает SDK
вторая команда открывает папку с плагином
третья команда запускает плагин на выполнение
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
06.09.2014, 21:49  [ТС] 14
Цитата Сообщение от fireday Посмотреть сообщение
первая команда - запускает SDK
вторая команда открывает папку с плагином
третья команда запускает плагин на выполнение
первая команда запускает файл activate, (без расширения, внутри код, вроде бат)
после чего добавляется строка
Запуск консоли из bat с передачей нескольких параметров в консоль

далее переход в папку и вызов cfx (который находится в "addon-sdk\bin")
вот так выглядит консоль при вводе руками
Запуск консоли из bat с передачей нескольких параметров в консоль
0
3455 / 1993 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
07.09.2014, 07:21 15
fireday, несколько парадоксальный подход:
Bash
1
@cmd /k "(echo cd my-addon&& echo cfx run --profiledir="%APPDATA%\Mozilla\Firefox\Profiles\6dqq6vn4.default")| addon-sdk\bin\activate"
.
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
07.09.2014, 23:32  [ТС] 16
нет(

Код
Welcome to the Add-on SDK. For the docs, visit https://addons.mozilla.org/en-US/
developers/docs/sdk/latest/

D:\1. plugins\firefox>
0
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
10.09.2014, 03:11  [ТС] 17
Знающие закончились? или не хотят вникать в суть вопроса?

нужно:
запустить один экземпляр консоли и в нем выполнить несколько команд
0
1744 / 349 / 41
Регистрация: 15.10.2012
Сообщений: 547
12.09.2014, 19:12 18
Цитата Сообщение от fireday Посмотреть сообщение
Знающие закончились? или не хотят вникать в суть вопроса?
Мало информации, что там происходит.
Цитата Сообщение от fireday Посмотреть сообщение
Собственно нужно запустить консоль из батника с параметром "/K"
А почему нельзя выполнить эти самые команды последовательно прямо из батника?

Скорее всего, activate возвращает не нулевой код и поэтому следующие команды не выполняются. Если нет необходимости анализировать код возврата, замени двойные && на одинарные &.
2
307 / 138 / 6
Регистрация: 17.04.2013
Сообщений: 1,943
16.09.2014, 22:41  [ТС] 19
Smitis, я сам не совсем понимаю что там происходит

Эти команды запускают sdk для разработки плагинов под firefox
Консоль запускается в расположении папки с sdk, затем:
Первая команда "sdk\bin\activate" - активация sdk
Запуск консоли из bat с передачей нескольких параметров в консоль

(на скрине видны изменения в консоли после выполнения команды)
Вторая команда - "cd MyFolder" переход в папку с плагином
третья команда - запуск плагина через "sdk cfx run"
Третья команда должна выполнятся в консоли, в которой выполнилась первая команда
0
Эксперт WindowsАвтор FAQ
17969 / 7607 / 889
Регистрация: 25.12.2011
Сообщений: 11,342
Записей в блоге: 17
16.09.2014, 23:57 20
Да не будет эта консоль выполнять команды, переданные последовательно через CMD.
(они исполняться уже после завершения работы консоли SDK)
Нужно захватывать поток ввода и передавать в него команды сразу после старта SDK.
Такое можно например на VBS сделать.
Позже отпишу пример.

Добавлено через 4 минуты
Как вариант можно попробовать через канал (если эта консоль имеет данную поддержку):

Bash
1
(echo cd my-addon& echo cfx run --profiledir="C:\Users\myuser") | addon-sdk\bin\activate
Или таким образом:

Bash
1
2
3
4
5
(
echo cd my-addon
echo echo cfx run --profiledir="C:\Users\myuser"
) > Script.txt
addon-sdk\bin\activate < Script.txt
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2014, 23:57
Помогаю со студенческими работами здесь

Запуск процедуры по имени с передачей ей параметров
Хочу запускать процедуру по ее имени с передачей ей параметров Пробую в Excel : метод...

Запуск внешних приложений с передачей параметров
У меня есть две программы на windows forms, я хочу сделать так, чтобы из программы 1 можно было бы...

Запуск консоли cmd с передачей в нее команды
товарищи ,подскажите пожалуйста (желательно код) ,как мне вызвать cmd .Т.е запускается программа и...

Запуск приложения на MapBasic из С++ Builder с передачей параметров
Здравствуйте! Хочу запустить из С++ Builder приложение, написанное на MapBasic: .mbx, с передачей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru