2017-07-31 86 views
0

我試圖將得到FQDN在CMD線變量通過下面的方法,但它不是我提供的FQDNFor循環CMD越來越可變

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

你問會在'%D',而不是'%F' – Stephan

+0

唯一的令牌我不清楚地瞭解 – asngvas

+0

定義一個標記('tokens = 4'),它是'%d',但你設置fqdn =%f'。 '%f'沒有定義。你應該使用'set fqdn =%d'。 – Stephan

回答

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上的不區分大小寫開關。

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採取最後令牌線(不管有多少)。

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

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%