Сохранить вывод команды powershell в переменной и использовать его в пакетном скрипте?

Я пытаюсь сохранить выходные данные команды powershell (запускаемой из пакетного сценария) и использовать ее в пакетном сценарии.

Подскажите, пожалуйста, что мне делать?

Команда Power Shell это:

[System.Net.Dns]::GetHostByName((hostname)).HostName

Я хочу использовать вывод в пакетном скрипте.

PS

Было бы еще лучше, если бы я мог получить полное имя компьютера / имя хоста / полное доменное имя (FQDN) из cmd, а не из powershell. Но полное имя компьютера не является объединением переменных ComputerName и UserDNSDomain.

2 ответа

Решение
for /f "tokens=*" %%i in ('powershell /command "[System.Net.Dns]::GetHostByName((hostname)).HostName"') do set return=%%i
echo %return%

Вы можете сделать это в пакетном режиме, используя nslookup который выполняет тот же DNS-поиск:

for /f "tokens=1*" %%a in ('nslookup hostname ^| findstr /i "name"') do set return=%%b
echo Hello '%return%'
Другие вопросы по тегам