for语句读取文本内容的一些陷阱
来源:互联网 发布:js select赋值 编辑:程序博客网 时间:2024/05/15 14:11
1、普通for语句会忽略以分号开头的文本: test.txt内容:CODE: Copy to clipboard;abcai::te,te sttest 测试代码:CODE: Copy to clipboard@echo offfor /f "delims=" %%i in (test.txt) do echo %%ipause 此陷阱在不用for的 type test.txt、more test.txt和findstr .* test.txt 语句中不存在。 2、在for语句中使用带 tokens=1* delims=: 的 findstr /n .* test.txt 的时候,会过滤掉行首的所有冒号: test.txt同1; 测试代码:CODE: Copy to clipboard@echo offfor /f "tokens=1* delims=:" %%i in ('findstr /n .* test.txt') do echo %%jpausedos命令大全 解决问题1和问题2的通用方案: 稍微复杂一点的:CODE: Copy to clipboard@echo offfor /f "delims=" %%i in ('findstr /n .* test.txt') do ( set "str=%%i" call set "str=%%str:*:=%%"dos之家 call echo "%%str%%")pause 最简洁的(经测试,这个方案不具备通用性,因为"delims= eol=" 会把行首为引号的内容过滤掉,看来真是前门驱虎后门进狼、引号和分号不能兼顾啊):CODE: Copy to clipboard@echo offfor /f "delims= eol=" %%i in (test.txt) do echo %%ipause 简洁方案中的"delims= eol=" 顺序不能颠倒,否则会出现偏差。 不知道强大的 for 还会有哪些陷阱会让不明就里的我们往里跳,请各位收集一下,以便日后编写代码的时候能少走弯路。for /f "eol= delims=" %%i in (test.txt) do echo %%i "eol= delims=" 不能颠倒, 本机测试没有发现错误.看来for /?的注释真的有点问题啊.eol=c - 指一个行注释字符的结尾(就一个)delims=xxx - 指分隔符集。这个替换了空格和跳格键的 默认分隔符集。上面的说明我们在理解时产生了歧义, eol是过滤与行首字符匹配的行. 就像delims默认的分隔符为空格或TAB. 而eol的默认过滤的行首字符为;号, 而for /?却没有说明.namejm兄说明给出的解决代码, for /f "delims= eol=" %%i in (test.txt) do echo %%i 它的作用和"delims=" 一样是取消默认空格作为分隔符, 而"eol="是取消;作分隔符.下面代码为过滤行首为冒号的行, 同时取消了默认的分号分隔符.CODE: Copy to clipboard@echo offdos命令大全for /f "delims= eol=: " %%i in (test.txt) do echo %%ipausetest.txtCODE: Copy to clipboardabc:1234:56;;def:: dok:cto:::dos之家elo分隔符只能为一个, 上面代码故意让elo有两个分隔符, 可是只过滤了行首为:号的行, 而空格行却没有过滤. “dos命令大全”www.daohei.com“dos之家”
- for语句读取文本内容的一些陷阱
- 对文本内容读取的方式
- 读取资源文件里的文本内容
- 黑马程序员---读取文本文档的内容
- java读取txt文本的内容
- java 读取本地文本文档的内容
- Delphi读取文本内容
- hadoop 读取 文本内容
- C++ 读取文本内容
- Android读取文本内容
- Java读取文本内容
- 读取文本的内容和将文本写入文件中
- if语句的陷阱
- ajax读取txt文本内容
- ABAP:读取长文本内容
- ajax读取txt文本内容
- 1.读取TXT文本内容
- python读取ppt文本内容
- 编译错误
- 【LaTeX入门】05、换行、换段、换页、首行缩进等命令
- Nk2219(模拟)
- Linux用户管理
- Linux tcpdump命令详解
- for语句读取文本内容的一些陷阱
- 2013年读书摘抄(一)
- 关于自己研究生一年的总结
- openstack Grizzly多节点部署方案
- cookie和session
- 编译Android源码(3) ---- lunch命令的分析
- 最新版ffmpeg源码分析
- atoi
- 第三学 linux内核中最基本的数据组织方式——list.h分析(1)