找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24962|回复: 6

[文本处理] [已解决]批处理如何逐行读取文本的内容

[复制链接]
发表于 2011-4-7 07:06:57 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-12-20 02:00 编辑

大家好 我想用if语句确认每一行字符窜的结尾或者说是回车键  用什么字符表示呢

评分

参与人数 1PB +2 收起 理由
tmplinshi + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-4-7 08:06:53 | 显示全部楼层
  1. ::=======================获得字符串长度==============================
  2. ::返回值在中%strlen%
  3. :getStrLen mystr
  4. set "mystr=%~1"&set "strlen=0"
  5. if not defined mystr goto :eof
  6. for /l %%i in (0,1,8191) do (set strlen=%%i&if "!mystr:~%%i,1!"=="" (goto :eof))
  7. goto :eof
  8. ::==============END======获得字符串长度========== by hf-g ===========
复制代码
在这里可以看到当 "字符"==""时,就到了字符串的结尾,也可以是行尾.

另:我们知道回车符由换行(LF ,\n) 和回车(CR,\r) 两个不看见字符(VB中  Chr(10) & Chr(13))组成,可以用debug或第三方工具如sed具体确定,具体顺序是0D 0A.

findstr,sed等工具中用 $ 表示行尾,^表示行的开头. if语句没什么好方法.
发表于 2011-4-7 08:30:55 | 显示全部楼层
LZ有什么思路可以说一下,大家一起计论一下
 楼主| 发表于 2011-4-7 17:57:38 | 显示全部楼层
我的思路就是 那这么说吧 我把我的代码让大家看看 看到我的代码就知道我的思路了啊
@echo off
setlocal EnableDelayedExpansion
for /f "delims=enter" %%i in (hh.txt) do (
set a=%%i
for   %%i in (!a!) do (
set b=!a:~0,2!
echo !b!
set a=!a:~3!
)
pause>nul
)
pause
  hh.txt就是随便的内容 没什么实际意义
 楼主| 发表于 2011-4-7 17:58:18 | 显示全部楼层
但我执行后没达到我的要求 不知道错在哪里 请帮我看看呗
发表于 2011-4-7 19:46:57 | 显示全部楼层
for /f "delims=enter" %%i in (hh.txt) do (
.......

这个命令本身就是个"笑话"呀, "enter"仅仅是5个字母而已和"abcde"没有本质分别.
看来你把"enter"当作回车了,想以此分割.

其实写bat要从计数机原理学起的,for命令你还没螚清楚.
2楼我已经告诉你了
另:我们知道回车符由换行(LF ,\n) 和回车(CR,\r) 两个不看见字符(VB中  Chr(10) & Chr(13))组成,可以用debug或第三方工具如sed具体确定,具体顺序是0D 0A.
 楼主| 发表于 2011-4-8 19:31:00 | 显示全部楼层
哦 知道了啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 01:17 , Processed in 0.019261 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表