首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PowerShell命令输出作为bat (cmd)脚本中的变量

问将PowerShell命令输出作为bat (cmd)脚本中的变量
EN

Server Fault用户
提问于 2018-07-11 08:29:14
回答 1查看 16K关注 0票数 4

我试图在某个.cmd文件中获取主机的FQDN。我们已经断开了AD域,所以"@echo %COMPUTERNAME%.%USERDNSDOMAIN%"不能工作。我的意思是它有效,但返回错误的值。

我最终得到的解决方案是powershell.exe -noninteractive -command[System.Net.Dns]::GetHostByName(($env:computerName)).HostName

它在命令行中工作得很好。我正在尝试将它放在cmd文件中的一个变量中:

代码语言:javascript
复制
FOR /F "tokens=* USEBACKQ" %%F IN (\`powershell.exe -noninteractive -command     
[System.Net.Dns]::GetHostByName(($env:computerName)).HostName\`) DO (
    SET var=%%F
)
ECHO %var%

但是得到以下错误:).HostName`)在这个时候是出乎意料的。

我理解应该对某些内容进行筛选,因为cmd和powershell都在解析这一行,但不知道要显示什么以及如何显示。怎么才能让这件事起作用?

EN

回答 1

Server Fault用户

发布于 2018-07-11 11:08:07

使用FOR \F时,需要将主题内的括号转义

代码语言:javascript
复制
FOR /F "tokens=* USEBACKQ" %%F IN (`powershell.exe -noninteractive -command [System.Net.Dns]::GetHostByName^(^($env:computerName^)^).HostName`) DO (
    SET var=%%F
)

ECHO %var%
票数 6
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/920427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档