在Windows的Powershell脚本中,我有这一行:
$etcdBaseUrl = "http://$env:computername.local:4001/v2/keys";
当我输入终端时:hostname
它返回的计算机名称如下:User1234.local
现在我试图在Mac OS上的Powershell中运行它。我已尝试将参数$env:computername.local
替换为$env:hostname
但我收到此错误
"错误:"无效的URI:无法解析主机名。"
答案 0 :(得分:1)
这在Linux上对我有效:
"http://"+(get-content env:HOSTNAME)+":4001/v2/keys"
问题是在Linux上,主机名未正确填充,所以我得到了这个信息:
http://localhost.localdomain:4001/v2/keys
答案 1 :(得分:0)
这在macOS Catalina上对我有效:
$(hostname)
(PowerShell相当于bash语法“主机名”)
注意:其他建议的答案不起作用,因为环境变量$HOSTNAME
在macOS上不存在:您必须运行命令hostname
。
答案 2 :(得分:0)
hostname 命令不会总是正确解析,因为它似乎是反向 dns 查找响应。要获取实际的计算机名称,请在 powershell cmd 行中使用它:
(scutil --get LocalHostName)
也可以用在这样的字符串中:
write-host "The Machine Name is: $(scutil --get LocalHostName)"