[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 pcl_test 于 2016-12-20 02:00 编辑

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

评分人数

    • tmplinshi: 感谢给帖子标题标注[已解决]字样PB + 2

哦 知道了啊

TOP

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.

TOP

但我执行后没达到我的要求 不知道错在哪里 请帮我看看呗

TOP

我的思路就是 那这么说吧 我把我的代码让大家看看 看到我的代码就知道我的思路了啊
@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就是随便的内容 没什么实际意义

TOP

LZ有什么思路可以说一下,大家一起计论一下
枫中残雪:风停了,我的心却在动,让我心中的寒意走向远方

TOP

  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语句没什么好方法.

TOP

返回列表