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

[文本处理] 如何让批处理连续显示文本中的首行内容

现有文本1内容如下:
ABC001
ABC002
ABC003
ABC004
ABC005
........

需要建立一个批处理文件: 内容如:
@ECHO OFF
ECHO ABC001
PAUSE
%0

按任意键后显示为
@ECHO OFF
ECHO ABC002
PAUSE
%0

目的是--让批处理显示文本1中的第一行字符
难题是--如果批处理已显示文本1第一行,则移除文本中第一行,按任意键后显示该文本文件中第二行.
            简单地说就是: 移动文本1中的首行到批处理中显示此行.

能做到吗?

这段也不错,不改变文本文件,而是逐行显示下去

  1. echo off
  2. for /f "delims=" %%i in (文本1.txt) do (
  3. echo %%i
  4. pause
  5. )
  6. pause
复制代码

TOP

经过测试,3楼朋友提供的代码完全达到 我需要的效果.
4楼\5楼编写的也许高明,但看不太懂, 也没有达到效果.

我的目的是: 申请了若干个网络硬盘.用户名没有规律, 所有用户名记录在一个文本文件中,为了不丢失网盘,需要过几天登录依次一下.

        感谢各位兄弟的大力予以支持!!!

TOP

怎么看楼主的意识都应该是2楼的正解。
技术问题请到论坛发帖求助!

TOP

  1. @echo off
  2. for /f "tokens=1 delims=:" %%i in ('findstr /n .* a.txt') do set "num=%%i"
  3. set /a num-=1,n=-1
  4. :begin
  5. cls&set /a n+=1
  6. if %n% neq 0 (set "sk=skip=%n%") else (set "sk=")
  7. for /f "%sk% delims=" %%i in (a.txt) do echo %%i
  8. if %n% neq %num% pause&goto begin
  9. pause>nul
复制代码
1

评分人数

***共同提高***

TOP

原来如此哦

  1. @echo off
  2. set a=list.x
  3. set b=listx.x
  4. :lp
  5. set show=
  6. set/p show=<%a%
  7. if defined show (echo %show%) else (echo 已经结束&pause&goto :eof)
  8. more +1 %a%>%b%
  9. set a=%b%&set b=%a%
  10. pause
  11. goto :lp
复制代码
1

评分人数

TOP

  1. @echo off
  2. set/p str=<1.txt
  3. echo %str%
  4. set "dos="
  5. for /f "skip=1 delims=" %%a in (1.txt) do (
  6.   if not defined dos (
  7.     set dos=god
  8.     >1.txt echo %%a
  9.   ) else (
  10.     >>1.txt echo %%a
  11.   )
  12. )
  13. echo.&pause&cls
  14. %0
复制代码

[ 本帖最后由 more 于 2008-12-18 12:00 编辑 ]
1

评分人数

TOP

直接显示不是很好,为什么要显示一下删除第一行呢

for /f %%i in (list.txt) do @echo %%i&pause
1

评分人数

TOP

返回列表