作者:chainliq | 时间:2006-11-20 08:23 | 标题:用批处理如何抽取文本的的行数
有一文本的内容如下:
87695494----1234565287145532
85467769----254585452
80366483----665322525
84693672----4445875
80319820----55889654
如何写个批处理:运行的时候,只要就输入87695494
就显示文本中87695494“----”后面的内容:1234565287145532
呵呵,因为我对抽取这方面的内容不是很懂,如果用:rem 的话,又好麻烦呀!
请各位帮忙哦
作者:9527 | 时间:2006-11-20 08:54
@echo off&setlocal
set/p a=enter:
for /f "tokens=1,2 delims=-" %%a in ('findstr "%a%" test.txt') do echo %%b
作者:chainliq | 时间:2006-11-20 10:22
9527 兄弟的这个,在XP系统中可以运行,可是在2000系统中显示无法打开呀,还有别的方法吗?而我用的是2000系统呀!如上图
[ Last edited by chainliq on 2006-11-20 at 10:24 AM ]
作者:3742668 | 时间:2006-11-20 13:03
把findstr换成find试试。
如果文件不大的话,也可以尝试一下下面的方案:
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=- tokens=1,2" %%i in (test.txt) do set %%i=%%j
set /p str=输入内容:
echo !%str%!
pause
上面的脚本同样测试于XP中。
作者:tao0610 | 时间:2006-11-20 14:29
@echo off
set /p str= 输入:
for /f "delims=- tokens=1*" %%i in (1.txt) do if %%i==%str% echo %%j
pause>nul
作者:chainliq | 时间:2006-11-21 18:40
那显示完成后就删除显示那一行,如:87695494----1234565287145532
显示完:1234565287145532 后,删除这一行:87695494----1234565287145532
该怎么改呢!
作者:nanhui112 | 时间:2008-01-06 20:27
@echo off
set /p a=enter:
for /f "delims=- tokens=1,2" %%a in (1.txt) do if %%a==%a% echo %%b
echo 删除这行吗,(Y/N)
set /p del=
if /i not "%del%“=="Y” goto :eof
for /f %%i in ('findstr /v ^%a%.* "1.txt"') do >2.txt echo %%i
echo 删除完毕。
pause>nul &exit