【发布时间】:2015-09-15 03:35:30
【问题描述】:
当我在 Windows 命令提示符中输入“主机名”时,我得到了系统的预期主机名,但我似乎无法将它包含在任何字符串输出中,要么分配给另一个变量,要么就像它本身一样。
下面的脚本输出“准备复制到服务器,这是正确的位置吗?”并且使用主机名的所有变体似乎都会产生相同的结果。
@echo off
set hostnamevar=%hostname%
set "greeting1=Ready to copy to Server of "
set "greeting2=Is this the correct location?"
set "greeting=%greeting1%%hostnamevar%%greeting2%"
echo %greeting%
pause
【问题讨论】:
-
试试
for /f %%A in ('hostname') do set hostname=%%A。hostname程序不是环境变量。这是运行程序并将输出设置为变量的一种方法。每次我看到这样的代码时,都会提醒我为什么要使用 Bash,即使在 Windows 中也是如此。 -
了解一下,这里的主机名是什么?命令?一个变量?主机名 /?即使使用 echo %hostname% 也可以给出未知命令,但是如果我在控制台上键入主机名,它会显示一个奇怪的输出。
Server : UnKnown Address: 2001:4860:4860::8888 -
其实这个帖子非常类似于this one(第二个代码sn-p)...
-
哦,等等,我的 cmd 卡在 nslookup 命令中,这就是 hostname 命令无法识别的原因,抱歉。 (我会在短时间内移除我所有的 cmets)
标签: windows batch-file cmd