对于循环cmd获取变量

时间:2017-07-31 17:02:33

标签: cmd

我试图通过下面的方法获取cmd行中的fqdn作为变量,但它没有提供我的FQDN

fOR /F "tokens=4 delims= " %d in ('net config workstation ^| findstr /c:"Full Computer Name"') do set fqdn=%f
echo %fqdn%

2 个答案:

答案 0 :(得分:0)

FOR /F "tokens=4 delims= " %d in ('net config workstation ^| findstr /I /c:"Full Computer Name"') do set "fqdn=%d"
echo %fqdn%

如果这是在.bat或.cmd脚本中,请将变量的百分比加倍%%d。另请注意findstr上的不区分大小写的开关。

答案 1 :(得分:0)

net config的输出取决于语言。在德语窗口中,您需要token=3,显然还需要另一个搜索字符串(Vollständiger Computername)。这是一个独立于语言的解决方案:

@echo off
set "x="
for /f "skip=1 delims=" %%a in ('net config workstation') do if not defined x set "x=%%a"
for %%a in (%x%) do set fqdn=%%a
echo %fqdn%

第一个for获取所需的行(第二行,无论语言如何),第二行for获取该行的 last 标记(无论有多少)有)。

如果你真的想直接在命令行上这样做:

c:> set "fqdn="
c:> for /f "skip=1 delims=" %a in ('net config workstation') do @if not defined fqdn @for %b in (%a) do @set "fqdn=%b"
c:> echo %fqdn%