CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Ответить
 • Просмотры: 1
Аватара пользователя
MSI

CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Сообщение MSI »

Мне необходимо что-то подобное:



%переменная% := (результат команды hostname), чтобы можно было использовать значение переменной дальше в скрипте...



Сейчас на ум приходит только hostname > file.ext , с последущим вычитыванием имени компьютера...
Аватара пользователя
MSI

Re: CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Сообщение MSI »

Ага. Я брал поновее версию. Но ни моя, ни Ваша без устройства работать не хотят Изображение.



В предыдущем варианте я что-то перебдел. Попробуйте так:



Код:

Код: Выделить всё

@echo off
for /f "usebackq tokens=2" %%i in (
	`2^>^&1 "fastboot.exe" oem get_build_version ^| find.exe /i "^(bootloader^)"`
) do set sBootLoader=%%i
if defined sBootLoader echo [%sBootLoader%]

или так:



Код:

Код: Выделить всё

@echo off
for /f "usebackq tokens=2" %%i in (
	`2^>^&1 "fastboot.exe" oem get_build_version ^| find.exe /i "(bootloader)"`
) do set sBootLoader=%%i
if defined sBootLoader echo [%sBootLoader%]
Аватара пользователя
MSI

Re: CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Сообщение MSI »

Цитата MSI:



А все-таки, можно ли в переменную "заталкивать" результат выполнения команды?





Код:

Код: Выделить всё

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
For /F "Delims=" %%I In ('Hostname') Do Set V=%%~I
Echo !V!
Аватара пользователя
Unter

Re: CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Сообщение Unter »

Спасибо всем кто пытался разобраться в моей "компетентности". Я нашел решение, возможно временное, но рабочее. Оно вытекает из логики запуска данного приложения. Запуск происходит EXE файлом небольшого размера, который делает первичные проверки и настройки и запускает рядом лежащий файл, который на самом деле является основным исполняемым модулем и прекрасно запускается через start. Видимо стартовый экзешник зачем то сканирует состояние USB устройств и при этом либо закрывается(пока не проверял), либо меняет свое состояние и скрипт начинает считать, что программа завершила работу, хотя основной модуль находится в памяти. Эх если бы это разработчикам донести.
Аватара пользователя
MSI

Re: CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Сообщение MSI »

Wolf_46, А если так?

Код:

Код: Выделить всё

setlocal ENABLEDELAYEDEXPANSION
FOR /F "usebackq delims=" %%a IN (`wmic path Win32_NetworkAdapter where NetConnectionStatus^="2" get NetConnectionID ^| find "одключ"`) DO (set result=%%a)
echo %result%




Оказывается, символ '=' тоже надо экранировать...

[spoiler]Код:
[/spoiler]

Код: Выделить всё

FOR /F "usebackq delims=" %%a IN (`echo =4=4=`) DO (set result=%%a )
echo result:%result%

выводит

Код:

Код: Выделить всё

result:4 4
Аватара пользователя
MSI

Re: CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Сообщение MSI »

Petya V4sechkin, благодарю с переменной %COMPUTERNAME% результат достигнут.

Сразу проверить как-то не решился - результаты выполнения hostname и set computername несколько разнятся - это и смутило...



А все-таки, можно ли в переменную "заталкивать" результат выполнения команды?
Аватара пользователя
Petya V4sechkin

Re: CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Сообщение Petya V4sechkin »

Цитата MSI:



А все-таки, можно ли в переменную "заталкивать" результат выполнения команды?





Код:

Код: Выделить всё

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
For /F "Delims=" %%I In ('Hostname') Do Set V=%%~I
Echo !V!
Аватара пользователя
MSI

Re: CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Сообщение MSI »

Petya V4sechkin, Благодарю!



Если можно, хочу уточнить в чем разница между Echo !V! и Echo %V% ?
Ответить

Вернуться в «Скриптовые языки администрирования Windows»