Batch Script:如何从指定输出字符串中提取'Yes'或'No'?
提取DHCP Enabled状态的Yes/No方法
CMD脚本实现
方法1:使用for /f解析分隔符
利用for /f命令按:和空格分割输出内容,直接提取状态值:
for /f "tokens=2 delims=: " %%a in ('netsh interface ip show addresses ^| findstr "DHCP Enabled"') do echo %%a
tokens=2:指定提取分割后的第2个字段delims=::将冒号和空格作为分割符
方法2:利用变量字符串替换
先捕获整行输出,再通过变量替换去掉前缀部分:
@echo off for /f "delims=" %%a in ('netsh interface ip show addresses ^| findstr "DHCP Enabled"') do set "dhcp_status_line=%%a" echo %dhcp_status_line:*: =%
%dhcp_status_line:*: =%:删除变量中从开头到:的所有内容,保留剩余的状态值
PowerShell实现(更简洁)
如果可以使用PowerShell,直接通过字符串分割提取:
(netsh interface ip show addresses | Select-String "DHCP Enabled").Line -split ": " | Select-Object -Last 1
或者使用PowerShell原生命令直接获取(需替换为你的网卡名称):
(Get-NetIPInterface -InterfaceAlias "以太网").Dhcp
内容的提问来源于stack exchange,提问作者sachinrameshch
相关产品推荐
相关产品推荐

