4 / 4 / 2
Регистрация: 01.12.2012
Сообщений: 39
|
|||||||||||
1 | |||||||||||
Присвоить переменной результат выполнения программы07.01.2013, 10:02. Показов 86690. Ответов 19
Метки нет Все метки)
(
Всем привет!
Сразу говорю в bat сценариях я новичок)) У меня есть программа (написана на с++) maxnum.exe, которая ищет максимальное число из 5 введенных. Я создал батник и записал в него такой код:
Думал сделать так:
0
|
|
07.01.2013, 10:02 | |
Ответы с готовыми решениями:
19
Присвоить переменной в качестве значения строку, выводимую в результате выполнения программы Переменная вместо строки в команде FIND -> присвоить результат переменной Присвоить вывод программы переменной Как присвоить определенному полю БД значение переменной, вычесленной в ходе выполнения программы |
Модератор
![]() 4952 / 2006 / 387
Регистрация: 06.01.2013
Сообщений: 4,697
|
||||||
07.01.2013, 12:19 | 2 | |||||
Добавлено через 1 минуту А почему сам maxnum не переделаешь под свои нужды?
0
|
4 / 4 / 2
Регистрация: 01.12.2012
Сообщений: 39
|
||||||
07.01.2013, 13:35 [ТС] | 3 | |||||
Спасибо за ответ у меня получилось))
Потому что у мне было дано такое задание)) А почему когда пишешь вот так:
0
|
Модератор
![]() 4952 / 2006 / 387
Регистрация: 06.01.2013
Сообщений: 4,697
|
|||||||||||
07.01.2013, 13:43 | 4 | ||||||||||
![]() Решение
Потому что программисты винды такие программисты. Если ты используешь переменную ВНУТРИ цикла или оператора "иф", то она берётся такой, как она была ПРИ ВХОДЕ В ЦИКЛ, а т.к. до цикла её не было, то вместо неё подставляется пустота и получается просто echo. Это называется "связывание времени подстановки" или както так.
Чтобы это не мешало, надо либо использовать переменные за циклом, или в начало батника впихнуть строку
2
|
4 / 4 / 2
Регистрация: 01.12.2012
Сообщений: 39
|
|
07.01.2013, 13:55 [ТС] | 5 |
Огромное спасибо))) Всё получилось!
0
|
1744 / 349 / 41
Регистрация: 15.10.2012
Сообщений: 548
|
|
07.01.2013, 14:32 | 6 |
"Переменные" в командных файлах это не те переменные, как это понимается в других языках программирования. По сути - это _макроподстановки_. При построчной интерпретации, cmd считывает новую строку, раскрывает переменные, выполняет. Отсюда всякие удваивания, утраивания и т.д. знаков процента.
Фокус в том, что код в скобках () указывает cmd обработать не просто одну строку, а блок текста, возможно, состоящий из нескольких строк. Подстановка осуществляется, естественно, один раз.
2
|
Модератор
![]() 4952 / 2006 / 387
Регистрация: 06.01.2013
Сообщений: 4,697
|
|
07.01.2013, 14:37 | 7 |
В самой строке, я это знаю. Но всё равно восхищаюсь ими, так как рациональнее было бы заменять это непосредственно при выполнении команды. Впрочем, setlocal enabledelayedexpansion всё решает
0
|
0 / 0 / 0
Регистрация: 06.04.2014
Сообщений: 6
|
|
03.02.2016, 16:32 | 8 |
А как быть если присвоить нужно из первой строки вывода?
Например вывод команды rasdial без параметров: Код
Связь с MyProvider Команда успешно выполнена. Код
Отсутствуют подключения Команда успешно выполнена.
0
|
3455 / 1993 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
|
||||||
03.02.2016, 23:48 | 9 | |||||
![]() Решение
2
|
6 / 1 / 0
Регистрация: 24.12.2013
Сообщений: 5
|
|
14.04.2017, 15:11 | 11 |
FOR /F %%a IN (`maxnum.exe "1 4 2 6 4"`) DO set result=%%a
echo %result% Параметры передаются через двойные ковычки.
0
|
6 / 1 / 0
Регистрация: 24.12.2013
Сообщений: 5
|
|
10.05.2017, 09:13 | 13 |
Dragokas
к сожалению от FraidZZ не работает. Есть программа которая в данном случае это maxnum.exe которая должна принимать параметры, передать параметры в файле получилось только таким способом maxnum.exe "1 4 2 6 4" Это не теория. Это практика с которой столкнулся.
0
|
![]() ![]() |
|
10.05.2017, 17:54 | 14 |
Ну если только какая-то специфическая программа.
А для программы вида: можно сразу говорить о том, что её писал криворукий программист. Вообще, во всех случаях читайте хелп на программу.
0
|
0 / 0 / 0
Регистрация: 30.10.2015
Сообщений: 2
|
|
02.10.2019, 16:41 | 15 |
а если два результата выводит , то как присвоить каждому переменную?
0
|
1 / 1 / 0
Регистрация: 10.01.2011
Сообщений: 82
|
|
24.12.2020, 17:02 | 17 |
И как сие сделать с результатом вывода api в curl?
0
|
1 / 1 / 0
Регистрация: 10.01.2011
Сообщений: 82
|
|
24.12.2020, 21:09 | 19 |
Ну к примеру curl https://whattomine.com/coins/151.json
выдает результат в виде: Код
{"id":151,"name":"Ethereum","tag":"ETH","algorithm":"Ethash","block_time":"13.3071","block_reward":2.74858076361654,"block_reward24":3.22496681451538,"block_reward3":2.965810887965993,"block_reward7":2.8386284391408227,"last_block":11517747,"difficulty":3.649228010774094e+15,"difficulty24":3.7136899810067e+15,"difficulty3":3.685968611318847e+15,"difficulty7":3.648970091276806e+15,"nethash":274231651582545,"exchange_rate":0.025368,"exchange_rate24":0.025274943977591,"exchange_rate3":0.026044026760091,"exchange_rate7":0.02703991464321363,"exchange_rate_vol":8741.27746054,"exchange_rate_curr":"BTC","market_cap":"$67,501,322,484","pool_fee":"0.000000","estimated_rewards":"0.005659","btc_revenue":"0.00014356","revenue":"$3.35","cost":"$1.01","profit":"$2.34","status":"Active","lagging":false,"testing":false,"listed":true,"timestamp":1608832106}
0
|
5900 / 2596 / 1023
Регистрация: 06.06.2017
Сообщений: 8,861
|
||||||
24.12.2020, 21:23 | 20 | |||||
0
|
24.12.2020, 21:23 | |
Помогаю со студенческими работами здесь
20
Переменно присвоить результат выполнения SQL скрипта Результат выполнения программы в консоли пропадает после выполнения скрипта Результат запроса присвоить переменной Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |