Как остановить команду эхо от отображения переменных, которые не установлены? - PullRequest
0 голосов
/ 20 апреля 2020

Я работаю над приложением, которое требует, чтобы мои пользователи указывали полное доменное имя своего компьютера windows.

Чтобы помочь моим пользователям извлечь полное доменное имя своего компьютера, я хочу поделиться им простые шаги командной строки, которые они могут копировать / вставлять и выполнять на своих терминалах для получения результата.

Я думал о приведенной ниже команде для извлечения полного доменного имени локальной машины:

echo %COMPUTERNAME%.%USERDNSDOMAIN%

Но у этой команды мало проблем.

  1. Она выводит данные во ВСЕХ КАП. (Я могу жить с этим)

  2. Это дает неправильный вывод, если переменная не установлена.

Например :

Если значение USERDNSDOMAIN не задано, вы получите следующий вывод:

echo% COMPUTERNAME%.% USERDNSDOMAIN% // <- Запустите его на приглашение cmd </p>

ClientComputerName.% USERDNSDOMAIN% // <- неверный вывод: уведомление «% USERDNSDOMAIN%» добавлено в o / p </p>

Есть ли способ остановить выводит переменную, если ее значение не установлено?

Обратите внимание, что я хочу извлечь "полное доменное имя" моего компьютера windows только через приглашение CMD.

1 Ответ

1 голос
/ 20 апреля 2020

Вы можете получить полное доменное имя, используя PowerShell.

=== Get-FQDN.bat

@ECHO OFF
FOR /F %%A IN ('powershell -NoLogo -NoProfile -Command ^
    "([System.Net.Dns]::GetHostByName($Env:COMPUTERNAME)).HostName"') DO (
    SET "THEFQDN=%%A"
)
ECHO %THEFQDN%

Если у вас несколько пользователей, то у вас наверняка есть способ получить программы и пакетные файлы, установленные на них. После установки этого сценария пакетного файла в каталог в пользовательской переменной PATH это однострочная команда.

Get-FQDN
...