有一个文本文件,有N行,每一行字符数3、4、5、6、……不等,要求筛选出字符数为4的行,如何做到?
希望各位老大赐教,谢谢!
希望各位老大赐教,谢谢!
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
@echo off
setlocal ENABLEDELAYEDEXPANSION
set var=%2
if "%var%" == "" set /p var=输入要显示的行的字符数:
for /l %%i in (1,1,%var%) do set str=!str!.
findstr /x %str% %1
pause>nul
| 评分人 | 分数 | 时间 |
|---|---|---|
| 26933062 | +8 | 2007-08-15 02:08 |
@echo off
:: 显示只有4个字符的文本行
:: test.txt中只有纯字母,无空格,无空行
for /f %%i in (test.txt) do (
set str=%%i
set var=%%i
call :loop
set num=0
)
pause
goto :eof
:loop
set var=%var:~0,-1%&& set /a num+=1
if not "%var%"=="" goto loop
if %num% equ 4 echo %str%
三段代码,只有我的又长又低效,看来还得潜水。
@echo off
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%i in (test.txt) do (
set str=b%%ie
if not "!str:~5,1!" == "" if "!str:~6,1!" == "" echo. %%i
)
pause
goto :eof
Originally posted by 3742668 at 2006-8-14 09:56 PM:
Well,利用findstr /x以及正则表达式,问题可以变得很简单:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set var=%2
if "%var%" == "" set /p var=输 ...