中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何获得总行数,并循环显示4行且到显示完所有行?
« [1] [2] »
作者:
标题: 如何获得总行数,并循环显示4行且到显示完所有行? 上一主题 | 下一主题
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 16 楼』:  



  Quote:
Originally posted by slore at 2007-3-25 01:00 PM:



:P还不知道说谁的呢: )

咱们俩谁跟谁呀

2007-3-26 02:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 17 楼』:  

@echo off & setlocal enabledelayedexpansion
set /a c=0
for /f "tokens=1 delims=" %%a in ('find /n /v "" test.txt') do set /a c+=1 & echo %%a && if "!c!"=="4" set /a c=0 & pause >>nul

何必非得去判断是4的倍数呢

[ Last edited by bjsh on 2007-3-25 at 02:25 PM ]

2007-3-26 03:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 18 楼』:  

这个也很好,加上skip=2就可以不显示文件名只显示文本内容了



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-3-26 05:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by bjsh at 2007-3-25 14:23:
@echo off & setlocal enabledelayedexpansion
set /a c=0
for /f "tokens=1 delims=" %%a in ('find /n /v "" test.txt') do set /a c+=1 & echo %%a && if "!c!&qu ...


  其实质还是4的倍数,只不过到了4就初始为0了,原理没有变。


2007-3-26 09:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 20 楼』:  

只是单纯的判断的话,if要比使用set的方法快一倍左右的时间,但CPU也高一倍,若本身已经在使用set来计算,那么,反而效率会理快一点,总之一句话,不同地点不同应用

2007-3-26 09:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 21 楼』:  


 
  我也来灌一水~~
@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION

SET A=1
FOR /F "TOKENS=1* DELIMS=:" %%A IN ('FINDSTR /N .* TEST.TXT') DO (
        ECHO/%%B
        SET/A B=!A!%%4
        IF !B! EQU 0 (ECHO/任意键显示下4行的内容&PAUSE>NUL)
        SET/A A+=1
)
PAUSE&EXIT/B


   此帖被 +10 点积分         点击查看详情   
评分人:【 everest79 分数: +8  时间:2007-3-26 22:25
评分人:【 axi 分数: +2  时间:2007-3-27 00:44


2007-3-26 13:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
axi
中级用户

脚本爱好者


积分 238
发帖 93
注册 2007-3-11
来自 GZ
状态 离线
『第 22 楼』:  

我想在批处理上创建楼上的批处理(如下),为何不成功呢? 其中 %% 不能创建。

echo @ECHO OFF^&SETLOCAL ENABLEDELAYEDEXPANSION >a.bat
echo SET A=1 >>a.bat
echo FOR /F "TOKENS=1* DELIMS=:" ^%^%A IN ('FINDSTR /N .* TEST.TXT') DO ( >>a.bat
echo         ECHO/^%^%B >>a.bat
echo         SET/A B=!A!^%^%4 >>a.bat
echo         IF !B! EQU 0 (ECHO/任意键显示下4行的内容^&PAUSE^>NUL) >>a.bat
echo         SET/A A+=1 >>a.bat
echo ) >>a.bat
echo PAUSE^&EXIT/B >>a.bat

2007-3-27 00:38
查看资料  发短消息 网志  OICQ (453623262)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 23 楼』:  


To axi:

  如果要创建%%,需要用%%%%来代替。


2007-3-27 00:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
axi
中级用户

脚本爱好者


积分 238
发帖 93
注册 2007-3-11
来自 GZ
状态 离线
『第 24 楼』:  

明解,多谢!

2007-3-27 01:34
查看资料  发短消息 网志  OICQ (453623262)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 25 楼』:  


To axi:

  兄还可以将以下语句加在21楼代码的前面,直接运行时可以执行:Write下面的代码,带参数运行可以达到你的写入文件的目的。
@if "%1"=="" (@goto :Write) else (@more +2 %0>>%~dp0new.bat&start notepad %~dp0new.bat&goto :eof)
:Write


   此帖被 +8 点积分        点击查看详情   
评分人:【 everest79 分数: +8  时间:2007-3-29 21:05


2007-3-27 01:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
axi
中级用户

脚本爱好者


积分 238
发帖 93
注册 2007-3-11
来自 GZ
状态 离线
『第 26 楼』:  

@more +2 %0>>%~dp0new.bat

简单的一句就可以创建 :Write 下的内容,比起我哪种方法好多。

[ Last edited by axi on 2007-3-26 at 02:20 PM ]

2007-3-27 02:36
查看资料  发短消息 网志  OICQ (453623262)  编辑帖子  回复  引用回复
peterdocter
中级用户




积分 379
发帖 95
注册 2003-7-17
状态 离线
『第 27 楼』:  

IF !B! EQU 0 (ECHO/任意键显示下4行的内容&PAUSE>NUL)
IF !B! EQU 0 (ECHO/任意键显示下4行的内容&echo %%B>>number.txt)
为什么?生成文件时就出少一行?
uoarlykb
ifkmpcwg
kzllmbms
为什么用了变量延迟功能,也不能用>一次就生成四个内容?非要用>>追加符不何?

[ Last edited by peterdocter on 2007-3-27 at 05:08 AM ]

2007-3-27 05:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ngela
初级用户





积分 28
发帖 10
注册 2007-2-19
状态 离线
『第 28 楼』:  

多谢啦,解决了.

2007-3-29 02:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: