Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

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

Пользователь


Сообщения: 63
Благодарности: 4

Профиль | Отправить PM | Цитировать


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

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

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

Отправлено: 18:11, 14-02-2009

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


alpap, спасибо, ясно.
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:50, 14-08-2018 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо всем за помощь.
Не получается сделать в одну строчку, мне нужно будет использовать where для нескольких, разных файлов и чтобы в начале прописывалось имя компьютера: %computername%;filename1;filename2 и тд

@echo off
>where.csv echo %computername% && (For /F "Delims=" %%I In ('where /r d:\ "filename1"') Do @<nul set /p="%%~I;") && (For /F "Delims=" %%I In ('where /r d:\ "filename2"') Do @<nul set /p="%%~I;")
pause

Еще такой вопрос реально ли вообще вывести путь от куда запущены текущие java.exe процессы, без вывода аргументов с которыми он стартован? Пробовал через wmic с выводом commandline - путь указывает, но еще и указывает кучу не нужных аргументов с которыми стартован процесс (((

В итоге хотел бы получить такую информацию: %computername%;filename1;filename2;all_java.exe_process_path

Заранее огромное спасибо!

Последний раз редактировалось Runn3r, 14-08-2018 в 15:03.


Отправлено: 14:52, 14-08-2018 | #32


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Runn3r, так Вам как надо-то? В моём понимании или в понимании коллеги alpap? Такой:
Код: Выделить весь код
ComputerName;c:\Windows\notepad.exe
ComputerName;c:\Windows\System32\notepad.exe
ComputerName;c:\Windows\SysWOW64\notepad.exe
или такой:
Код: Выделить весь код
ComputerName;c:\Windows\notepad.exe;c:\Windows\System32\notepad.exe;c:\Windows\SysWOW64\notepad.exe
?

Цитата Runn3r:
мне нужно будет использовать where для нескольких, разных файлов »
Ну, так и используйте несколько:
Код: Выделить весь код
where.exe /r c:\ "notepad.exe" "calc.exe" "regedit.exe"
Скрытый текст
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:06, 14-08-2018 | #33


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


нужно чтобы информация выводилась в строку

Отправлено: 15:09, 14-08-2018 | #34


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Runn3r, значит, используйте вариант коллеги alpap. Как указать несколько масок зараз — сообщением выше.

Цитата Runn3r:
Еще такой вопрос реально ли вообще вывести путь от куда запущены текущие java.exe процессы, »
Что есть в Вашем понимании «путь от куда запущены»?
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:26, 14-08-2018 | #35


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Iska:
Что есть в Вашем понимании «путь от куда запущены»? »
На ПК установлены разные версии Java, одновременно выполняются несколько процессов java, нужен вывод откуда они запущены, нужен только путь без аргументов с которыми они стартованы

Отправлено: 15:34, 14-08-2018 | #36


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Надо полагать, Вы подразумеваете под этим путь к исполняемому файлу.
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

>"where.csv" (
	<nul set /p sVar=%ComputerName%;
	for /f "usebackq delims=" %%i in (`where.exe /r c:\ "notepad.exe" "calc.exe" "regedit.exe"`) do <nul set /p sVar=%%~i;
	for /f "usebackq delims=" %%i in (`wmic.exe Process where "Name = 'java.exe'" get ExecutablePath /value`) do for /f "tokens=2 delims==" %%j in ("%%i") do <nul set /p sVar=%%j;
)

endlocal
exit /b 0
Правда, как Вы собираетесь в этом месиве, по недоразумению именуемом Вами csv, различать что где есть — не знаю. Впрочем, дело Ваше.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:07, 14-08-2018 | #37


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте.
Нужно передать в скрипт переменную залогиненного пользователя.
Узнать кто залогинился можно командой WMIC /NODE: "localhost" COMPUTERSYSTEM GET USERNAME
На выходе получается
Код: Выделить весь код
UserName
DOMAIN\user
Нужно первую строчку убрать и имя домена с обратным слешем тоже.
Попробовал из того что выложено на форуме - не помогло.
Код: Выделить весь код
FOR /F "usebackq skip=1 delims=" %%I IN (`WMIC /NODE: "localhost" COMPUTERSYSTEM GET USERNAME`) DO Set /P S=%%I 
Echo S

Отправлено: 20:51, 05-11-2018 | #38


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


vdvas, возможно, Ваша проблема (для локальной машины) решается проще:
Код: Выделить весь код
echo %userdomain%
echo %username%
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:36, 05-11-2018 | #39


Новый участник


Сообщения: 11
Благодарности: 0

Профиль | Отправить PM | Цитировать


Я на удаленной машине выполняю скрипт через psexec с ключом s, таким образом %username% здесь будет СИСТЕМА.
Поэтому такие системные переменные не годятся.

Отправлено: 10:36, 06-11-2018 | #40



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как записать в переменную результат выполнения команды?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход