|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как записать в переменную результат выполнения команды? |
|
CMD/BAT - [решено] Как записать в переменную результат выполнения команды?
|
Пользователь Сообщения: 74 |
Мне необходимо что-то подобное:
%переменная% := (результат команды hostname), чтобы можно было использовать значение переменной дальше в скрипте... Сейчас на ум приходит только hostname > file.ext , с последущим вычитыванием имени компьютера... |
|
Отправлено: 18:11, 14-02-2009 |
![]() Пользователь Сообщения: 106
|
Профиль | Отправить PM | Цитировать Спасибо всем кто пытался разобраться в моей "компетентности". Я нашел решение, возможно временное, но рабочее. Оно вытекает из логики запуска данного приложения. Запуск происходит EXE файлом небольшого размера, который делает первичные проверки и настройки и запускает рядом лежащий файл, который на самом деле является основным исполняемым модулем и прекрасно запускается через start. Видимо стартовый экзешник зачем то сканирует состояние USB устройств и при этом либо закрывается(пока не проверял), либо меняет свое состояние и скрипт начинает считать, что программа завершила работу, хотя основной модуль находится в памяти. Эх если бы это разработчикам донести.
|
Отправлено: 02:16, 26-03-2020 | #51 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1226
|
Профиль | Отправить PM | Цитировать Цитата Unter:
![]() Как минимум, необходимо увидеть строку: Цитата Unter:
а вообще, в cmd, есть команда start, у которой есть ключ WAIT Цитата:
|
|||
------- Отправлено: 08:09, 26-03-2020 | #52 |
![]() Пользователь Сообщения: 106
|
Профиль | Отправить PM | Цитировать Идет именно формирование среды - переменная %TEMP% и каталоги в ней ну и неужели вы думаете что я про старт /wait не знаю, хотя в батниках можно и без нее обходиться. Ну а в VBS запуск шел через CreateObject("WScript.Shell").run
|
Отправлено: 09:37, 26-03-2020 | #53 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Unter, причём тут Ваша компетентность? Речь идёт о воспроизводимости.
|
Отправлено: 09:58, 26-03-2020 | #54 |
Crazy Сообщения: 1226
|
Профиль | Отправить PM | Цитировать Цитата Unter:
![]() "Секретную" строчку Вы показывать не желаете... соответственно, помочь вам, пока нечем. Ну, кроме как поговорить на общие темы... но это уже во флейм. |
|
------- Отправлено: 11:58, 26-03-2020 | #55 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Здравствуйте.
Предстоит на большом количестве ПК с winXP/7 удаленно поменять в параметрах соединения шлюз и днс. Решение вижу следующим: -получить имя соединения команда wmic path Win32_NetworkAdapter where NetConnectionStatus="2" get NetConnectionID | find "одключ" -используя полученное имя соединения, при помощи команды netsh внести необходимые изменения Но по какой-то причине < wmic path Win32_NetworkAdapter where NetConnectionStatus="2" get NetConnectionID | find "одключ" > в bat-нике работает некорректно: setlocal ENABLEDELAYEDEXPANSION FOR /F "usebackq delims=" %%a IN ('wmic path Win32_NetworkAdapter where NetConnectionStatus="2" get NetConnectionID ^| find "одключ"') DO (set result=%%a) echo %result% Подскажите, как поправить чтобы корректно работал. |
Отправлено: 11:12, 27-03-2020 | #56 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Wolf_46:
И при использовании квалификатора «usebackq» используйте такие: `…` кавычки для команды, а не такие: '…'. |
|
Отправлено: 12:22, 27-03-2020 | #57 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Кодировка файла - 866
кавычки поправил, результат: c:\Users\user\Desktop>5.bat c:\Users\user\Desktop>setlocal ENABLEDELAYEDEXPANSION c:\Users\user\Desktop>FOR /F "usebackq delims=" %a IN (`wmic path Win32_NetworkA dapter where NetConnectionStatus "2" get NetConnectionID | find "одключ"`) DO (s et result=%a ) Invalid Verb. c:\Users\user\Desktop>echo Режим вывода команд на экран (ECHO) включен. |
Отправлено: 13:34, 27-03-2020 | #58 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Wolf_46, ещё раз покажите Ваш код (нынешний, исправленный).
|
Отправлено: 16:56, 27-03-2020 | #59 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать |
Отправлено: 22:48, 27-03-2020 | #60 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Записать имя папки в которой лежит батник в переменную а потом эту же папку переим. | bobr95 | Скриптовые языки администрирования Windows | 8 | 10-04-2012 18:42 | |
CMD/BAT - [решено] Как определить IP и записать его в переменную? (OS: Windows Vista) | Voshal | Скриптовые языки администрирования Windows | 7 | 17-05-2010 11:43 | |
CMD/BAT - [решено] Строка результат выполнения filever.exe передать в переменную | dARKest | Скриптовые языки администрирования Windows | 3 | 07-09-2009 22:50 | |
[решено] Объединить результат mysql_fetch_array() в одну переменную | D_Master | Вебмастеру | 9 | 10-07-2009 17:23 | |
bash: Как выполнить многострочный результат другой команды | shivtorov | Общий по Linux | 12 | 04-10-2005 10:20 |
|