【发布时间】:2020-04-20 13:47:18
【问题描述】:
我正在开发一个应用程序,该应用程序要求我的用户共享他们的 Windows 机器的完全限定域名。
为了帮助我的用户提取他们机器的 FQDN,我想分享简单的命令行步骤,他们可以复制/粘贴并在终端上执行以获得结果。
我在想下面的命令来提取本地机器的 FQDN:
echo %COMPUTERNAME%.%USERDNSDOMAIN%
但是这个命令的问题很少。
它以全大写形式提供输出。 (我可以忍受)
如果未设置变量,则输出不正确。
例如:
如果 USERDNSDOMAIN 值未设置,那么,您将获得以下输出:
echo %COMPUTERNAME%.%USERDNSDOMAIN% //
ClientComputerName.%USERDNSDOMAIN% //
如果变量的值未设置,有什么方法可以停止回显变量?
请注意,我只想通过 CMD 提示符提取我的 windows 机器的“完全限定域名”。
【问题讨论】:
-
哦,伙计,您已经非常接近自己找到答案了。您要查找的短语是“如果未定义”。
-
@avery_larry - 我不知道,我认为
if defined userdnsdomain echo %computername%.%userdnsdomain%很简单。 -
您将命令行输出与批处理文件输出混淆了。在批处理文件中,回显未定义变量的输出不会显示任何内容。你的输出是这样的:
ClientComputerName.. -
是的;但我认为
ipconfig以独立于语言的相同顺序返回数据,所以我可能会使用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:*. : =%... -
@aschipfl 您对“简单命令行步骤”的想法与我的想法大不相同。大声笑
标签: windows batch-file cmd fqdn