findstr在命令上出错了

时间:2014-04-19 16:01:28

标签: batch-file

我有一个列表,其中包含电台和IP的数量,如下所示:

1   10.1.1.10
10  10.1.10.10
11  10.1.11.10
17  10.1.17.10
174 10.1.174.10
7602    10.16.2
7604    10.16.4
7605    10.16.5

列表非常大,但这是一个例子。

我想使用“findstr”以“SET / P”结束电台号码 并获得IP。 这就是我写的:

@echo off
setlocal enabledelayedexpansion
set /p sn=
echo result is :
echo.
for /f "tokens=1-3" %%a in ('findstr /c:%sn% stations.list') do set station=%%a %%b %%c
echo %station%
echo.
pause

当我尝试做一些脚本时,它会让我为“1”,它会带来一些数字为“1”但没有“1”的东西

1 个答案:

答案 0 :(得分:0)

添加/b /e个开关,1可以获取该行的IP地址。

您的示例不使用三个令牌,因此我也将其更改为1,2:

@echo off
setlocal enabledelayedexpansion
set /p sn=
echo result is :
echo.
for /f "tokens=1,2" %%a in ('findstr /b /e /c:%sn% stations.list') do set station=%%a&set IP=%%b
echo %station%, %IP%
echo.
pause