Windows XP中Linux命令`hostname –fqdn`的等价物?

有没有办法findWindows XP的完全合格的域名?

不熟悉Windows,我将描述我正在寻找的相当于Linux中可用的命令hostname --fqdn

    您可以在系统属性(“计算机名称”选项卡)中find它。

    使用命令行,您可以运行IPCONFIG /ALL并查看“主机名”和“主DNS后缀”字段。

    在windows中没有这样的选项给hostname命令。 但是,这应该做的伎俩:

     echo %COMPUTERNAME%.%USERDNSDOMAIN% 

    或者你可以grep(在Windows下: find /I "string" )为主机和域从setsysteminfoipconfig -all名称,并将其粘贴在其他地方。

    编辑:固定错字。 谢谢Benoit

    更新:variables%USERDNSDOMAIN%仅在login到域时可用…您从DHCP服务器获得的DNS后缀不会放入环境variables(据我所知)。

    该命令是:

     ping -a localhost 

    如果您需要将Unix shell脚本移植到Windows或者只是想在CLI上工作,请查看GNUwin32 。 它为Windows提供了像cut,grep等常用工具。

    vbscript:

     ' Print FQDN in lower case letters ' Volker Fröhlich (2011) option explicit dim Message dim output dim WshShell, objEnv dim mydomain ' Read value from registry function readFromRegistry (strRegistryKey, strDefault ) Dim WSHShell, value On Error Resume Next Set WSHShell = CreateObject("WScript.Shell") value = WSHShell.RegRead( strRegistryKey ) if err.number <> 0 then readFromRegistry= strDefault else readFromRegistry=value end if set WSHShell = nothing end function mydomain = readfromRegistry("HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Domain", "asdf") ' Get the WshShell object Set WshShell = CreateObject("WScript.Shell") ' Get collection by using the Environment property Set objEnv = WshShell.Environment("Process") if (mydomain="") then Message = LCase(objEnv("COMPUTERNAME")) else Message = LCase(objEnv("COMPUTERNAME")) & "." & mydomain end if ' Write to stdout set output = wscript.stdout output.writeline Message 

    DOSbatch file打电话给脚本:

     for /f %%a in ('cscript //nologo yourscriptname.vbs') do set FQDN=%%a echo %FQDN% pause 

    从命令提示符下试试这个:

     FOR /F "tokens=2" %i in ('systeminfo ^| find /i "Domain"') do echo %computername%.%i 

    请记住如果在batch file中使用这个,请使用%作为%i 。 例如%%i

    您可能需要这样做的一个原因是:如果您的用户和计算机位于不同的域中,则%USERDNSDOMAIN%在应用于您的计算机时将不正确。 如果您只有一个域名和子域名,则可以使用上述其他解决scheme。

    这也将工作,并没有systeminfo的延迟:

    ('ipconfig / all ^ | findstr'search')SET domain =%i&SET newdomain =%domain:=%&echo%COMPUTERNAME%。%newdomain%