Board logo

标题: [文件操作] 请问批处理怎样循环读取文本文件中的每一行? [打印本页]

作者: mrcool    时间: 2012-2-8 11:12     标题: 请问批处理怎样循环读取文本文件中的每一行?

我有一个website.txt,里面的内容如下:
  1. www.sina.com.cn
  2. www.qq.com
  3. www.sohu.com
  4. www.taobao.com
复制代码
我希望批处理每次能够顺序读取该文件中的每一行,并将其赋值给变量%website%

也就是,第一次循环取的是www.sina.com.cn,第二次取www.qq.com。。。。

我的代码始终取的是最后一行,请师傅们指教。
  1. :START
  2. FOR /F "delims=" %%a in (website.txt) do (set website=%%a)
  3. echo %website%
  4. GOTO START
复制代码

作者: ivor    时间: 2012-2-8 11:29

你的代码功能就是只输出最后一行,把goto start 删掉,设置ENABLEDELAYEDEXPANSION,echo %website%  修改为echo !website!然后添加到do ()中
作者: mrcool    时间: 2012-2-8 12:00

谢谢ivor的指点。
我想命令不在do()中运行。do()中只赋值的话,应当如何操作呢?
作者: lvsehuaxue    时间: 2012-2-8 13:01

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in (website.txt) do set "website=%%i"&call :s !website!
  3. pause
  4. :s
  5. echo %1
  6. goto :eof
复制代码

作者: Hello123World    时间: 2012-2-9 20:24

  1. @echo off&SetLocal EnableDelayedExpansion
  2. set website=
  3. FOR /F "delims=" %%a in (website.txt) do set website=!website!  %%a
  4. echo !website:~2!
  5. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2