我从 Windows 10 主机通过 SSH 连接到 Windows 10 目标计算机,以读取其环境变量之一,例如。%COMPUTERNAME%
两台计算机上都安装了 OpenSSH。远程 shell 是 cmd,我想使用命令命令。我尝试过这个:
ssh someuser@somecomputer echo %COMPUTERNAME%
不幸的是,我得到了主机的名称。显然,本地 cmd%COMPUTERNAME%
在将命令发送到目标之前替换了本地变量。我如何才能获得远程计算机的名称?我尝试%
使用引号等转义 ,,但没有任何帮助。
重要的:我已经可以通过在目标上调用 PowerShell 来解决问题。我想了解如何使用 cmd 来完成此操作... 我觉得这应该是可能的 :)
答案1
我找到了解决方案(关联),该%
字符必须进行转义。我之前尝试过,但不知道转义字符会根据在哪里你想要进行转义:
- 在命令行中:
ssh someuser@somecomputer echo ^%COMPUTERNAME^%
- 在批处理文件中:
ssh someuser@somecomputer echo %%COMPUTERNAME%%
(我也尝试了@Robert 的建议,延迟变量扩展,但无法使其发挥作用。)