Сохранить вывод команды 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%'