如何将PowerShell命令的结果保存到变量中并在批处理脚本中使用?

10

我想要做的是保存一个由批处理脚本运行的PowerShell命令的输出,并在批处理脚本中使用它。请问你能否给我建议?

PowerShell命令是:

[System.Net.Dns]::GetHostByName((hostname)).HostName

我希望能在批处理脚本中使用输出结果。

P.S.

如果可以从cmd而非powershell获取完整的计算机名/主机名/完全限定域名(FQDN),那将更好。但完整的计算机名不是ComputerName和UserDNSDomain变量连接的结果。


1
从PowerShell中,'$env:computername'可以获取计算机名称,如果这是您在PS中所指的内容。@thufir 我看到赏金要求100%的PowerShell解决方案,但我没有看到需要转换的批处理代码。 - Sambardo
@thufir:我不明白。问题是如何从批处理中使用100%的PowerShell命令,因此问题本身应该是你正在寻找的答案。如果不是,请澄清或者更好地提出一个新问题。 - Stephan
2个回答

11
for /f "tokens=*" %%i in ('powershell /command "[System.Net.Dns]::GetHostByName((hostname)).HostName"') do set return=%%i
echo %return%

3
你可以使用批处理方式,通过 nslookup 命令进行DNS查询:
for /f "tokens=1*" %%a in ('nslookup hostname ^| findstr /i "name"') do set return=%%b
echo Hello '%return%'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接