如何僅從命令中批量回傳值欄位?例如:
ipconfig /all | findstr "Host Name"
將回傳
Host Name . . . . . . . . . . . . : YOUR_HOSTNAME
但我只想要價值。在這種情況下,您的主機名。
此外,如果有多條線,它應該從頂部開始匹配。
uj5u.com熱心網友回復:
for /f "tokens=1*delims=:" %b in ( 'ipconfig /all ^| findstr /c:"Host Name"') do set "hostname=%c"
set "hostname=%hostname:~1%"
從提示。在批處理檔案中更改和%b使用。%c%%b%%c
插入符號轉義管道,告訴cmd管道是要執行的命令的一部分,而不是for.
這/c:"Host Name"使得findstr找到精確的字串Host Name。正如您所擁有的那樣,會findstr找到or,這將在 Host Name
Ethernet adapter VirtualBox Host-Only Network:
Description . . . . . . . . . . . : VirtualBox Host-Only Ethernet Adapter
例如。
要強制第一次匹配,請附加&goto label到for命令列并:label在批處理檔案的兩行之間插入。
uj5u.com熱心網友回復:
如果您想要主機名,Windows 已經提供了一個程式來準確地給出該主機名,而無需任何字串決議。
"%__APPDIR__%HOSTNAME.EXE"
在 a 中使用它batch-file來設定變數。
FOR /F "delims=" %%A IN ('"%__APPDIR__%HOSTNAME.EXE"') DO (SET "THISHOST=%%~A")
ECHO THISHOST IS %THISHOST%
如果你想升級到 .Net 或 PowerShell,有:
[System.Net.Dns]::GetHostName()
uj5u.com熱心網友回復:
然后,你不會相信這個,但是有一個環境變數叫做%computername%
自己試試:
echo %computername%
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/451381.html
上一篇:在windows中遞回搜索字串
