批处理For循环如何提取ping输出行第二部分的域名内容
问题原因
你原代码的问题在于for /f命令默认以空格、制表符作为分隔符拆分文本行,且默认仅返回拆分后的第1个字段,因此只会输出第一个单词Pinging。
修正后的代码
@echo off for /f "tokens=2" %%b in (c:\Temp\IP_temp.txt) do ( echo %%b pause exit /b )
代码说明
tokens=2参数指定提取拆分后的第2个字段,正好匹配你需要的域名部分- 如果后续需要兼容带空格的文件路径,可以调整为更稳妥的写法,增加
usebackq参数:@echo off for /f "usebackq tokens=2" %%b in ("c:\Temp\IP_temp.txt") do ( echo %%b pause exit /b ) - 本写法默认使用
for /f内置的空格作为分隔符,正好适配ping命令的输出格式,无需额外指定分隔符参数。
内容的提问来源于stack exchange,提问作者doheth
相关产品推荐
相关产品推荐

