当前位置: 首页 > 图文教程 > 脚本技术 > DOS/BAT > 显示只有指定个数字符的行

DOS/BAT
批处理制作照片整理器
可以生成SLEEP.EXE的延时命令的bat文件
用bat批量创建文件夹
bat批处理实现的创建10个文件夹,文件夹再包含5个空文件夹
bat延时执行命令的另一种方法
windows服务操作之删除服务 批处理实现
批处理 远程控制
使用批处理修改web打印设置笔记 适用于IE
批处理 结束麦咖啡进程的代码
cmd fsutil 命令新建空文本文件
cmd Tasklist与Tskill管理Windows系统进程
批处理 正则表达式(findstr) 整理
bat 文件 学习使用指南
for 语句从入门到精通
dos 目录跳转 cd
tree 以树形格式罗列文件
dos 内容重定向
dos if 条件判断
dos 流程跳转 goto
dos 文件复制 copy命令

DOS/BAT 中的 显示只有指定个数字符的行


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 177 ::
收藏到网摘: n/a

复制代码 代码如下:

@echo off
goto begin
参数1:文本文件名
参数2:要显示的行的字符数(可省)
例如要打印a.txt中的字符数为4的行:
print.bat a.txt 4
或者直接把要处理的文件拖放到脚本文件上,然后按提示操作。
效率非常高
:begin
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
goto :eof
@echo off
:: 显示只有4个字符的文本行
:: test.txt中只有纯字母,无空格,无空行
:: 因为是全文解析,所以效率低下
:: code by jm 2006-8-14
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%
goto :eof
@echo off
:: 通过首尾插入字符来判断,效率较高
:: 适合行中带空格的情况
:: 如果不插入字符,只判断第5位的字符情况,会出错
:: code by 3742668
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