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

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

[复制链接]
发表于 2012-2-8 11:12: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
复制代码
发表于 2012-2-8 11:29:09 | 显示全部楼层
你的代码功能就是只输出最后一行,把goto start 删掉,设置ENABLEDELAYEDEXPANSION,echo %website%  修改为echo !website!然后添加到do ()中
 楼主| 发表于 2012-2-8 12:00:04 | 显示全部楼层
谢谢ivor的指点。
我想命令不在do()中运行。do()中只赋值的话,应当如何操作呢?
发表于 2012-2-8 13:01:14 | 显示全部楼层

  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
复制代码
发表于 2012-2-9 20:24:16 | 显示全部楼层
  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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 20:49 , Processed in 0.012752 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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