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


    如果通过 for /f 获取行内容,那么无解,因为 for /f 必然是以换行符为行分隔符的,可以改用 set /p 获取文本,因为它是以 crlf 或 lfcr 为分隔符的:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /l %%a in () do (
  3.    set /p str=
  4.    rem 此处爱做啥做啥
  5.    echo [!str!]
  6. ))<in.txt>out.txt
复制代码
或者用第三方 gawk:
  1. gawk "BEGIN{RS=\"\r\"}{这里做点什么;print $0}" in.txt>out.txt
复制代码

TOP

回复 8# genekiller


    那就:
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /l %%a in ('findstr /n .* in.txt') do (
  3.    set /p str=
  4.    rem 此处爱做啥做啥
  5.    echo [!str!]
  6. ))<in.txt>out.txt
  7. rem 使用 findstr 是为了兼容文件中的空行,若无空行可以将 ('findstr /n .* a.txt') 改为 (a.txt)
复制代码
详见:http://bbs.bathome.net/thread-13327-1-1.html
也有别的方式来指定循环次数,需酌情选择

TOP

返回列表