Я работаю над приложением, которое требует, чтобы мои пользователи делились своим полным доменным именем своей машины с Windows.
Чтобы помочь моим пользователям извлечь полное доменное имя своей машины, я хочу поделиться простыми шагами командной строки, которые они могут скопировать/вставить и выполнить на своих терминалах, чтобы получить результат.
Я думал о приведенной ниже команде для извлечения полного доменного имени локальной машины:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
Но есть несколько проблем этой команды.
Это дает вывод во ВСЕХ ЗАГЛАВНЫХ БУКВАХ. (Я могу жить с этим)
Это дает неверный вывод, если переменная не установлена.
Например:
Если значение USRDNSDOMAIN не установлено, вы получите следующий вывод:
echo %COMPUTERNAME%.%USRDNSDOMAIN% //‹- Запустите это в командной строке cmd
ClientComputerName.%USRDNSDOMAIN% //‹- неправильный вывод: обратите внимание, что '%USERDNDOMAIN%' добавлено в o/p
Есть ли способ остановить повторение переменной, если ее значение не установлено?
Обратите внимание, что я хочу извлечь «полное доменное имя» моего компьютера с Windows только через приглашение CMD.
ipconfig /all
? - person avery_larry   schedule 20.04.2020if defined userdnsdomain echo %computername%.%userdnsdomain%
довольно просто. - person SomethingDark   schedule 20.04.2020if defined userdnsdomain (echo %computername%.%userdnsdomain%) else (echo %computername%)
За исключением, конечно, того, что на самом деле не находит домен DNS. Мои конечные пользователи получат это правильно 1 раз из 5, если мне повезет. Конечно, небольшой скрипт творил бы чудеса, если бы у них была общая сеть. - person avery_larry   schedule 20.04.2020ipconfig /all | findstr /i "host primary"
но я не знаю, работает ли это в других системах, кроме Windows 10. - person avery_larry   schedule 20.04.2020ClientComputerName.
. - person Squashman   schedule 20.04.2020ipconfig
зависит от языка, поэтому ваш подходfindstr
работает только в англоязычных установках Windows. - person Stephan   schedule 20.04.2020ipconfig
возвращает данные в том же порядке, независимо от языка, поэтому я бы, вероятно, использовалset "host=" & set "dns=" & for /F "delims=" %I in ('ipconfig /all ^| findstr /IC:". : "') do @if not defined host (set "host=%I") else if not defined dns (set "dns=%I")
, а затемecho/%host:*. : =%.%dns:*. : =%
... - person aschipfl   schedule 20.04.2020