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

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

我有一个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
复制代码

你的代码功能就是只输出最后一行,把goto start 删掉,设置ENABLEDELAYEDEXPANSION,echo %website%  修改为echo !website!然后添加到do ()中

TOP

谢谢ivor的指点。
我想命令不在do()中运行。do()中只赋值的话,应当如何操作呢?

TOP

  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
复制代码

TOP

  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
复制代码

TOP

返回列表