bat批处理文件操作
2012-06-26 11:32
183 查看
本文转载于
http://hi.baidu.com/northteam/blog/item/1fc31730fbc16c9da8018e81.html
[BAT]读取文件某1/n行
2008-03-21 07:17
@bug1
set skip=1 ::##应该为set n=2
::skip为跳过行数
@sug1
echo 文件名为 = %filename%
echo @跳过行数 = %n%
echo @输出行数 = %loop%
Echo =======================
for /f %opt% %%i in (%filename%) do (
if !counter! geq !loop! goto wayout
set /a counter+=1
echo %%i
)
:wayout
Echo =======================
pause
本文转载于 http://zhidao.baidu.com/question/351437453.html
写个批处理,读取某个文件的N行,第N个字符。例如: 读取C:\ log.txtlog.txt的内容为 abcd efg 123 ssssabcd efg 456ssssabcd efg 789ssss我只获取里面的 123 456 789 然后这3个数字相加,并求平均值,并以log2.txt保存在C盘。数字不定长度,可能是1000000,也可能是10000, 数字之后的都为 123 sss 234 sss 456 sss都是空格加SSS请教高手解决问题。
本文转载于 http://hi.baidu.com/zqsystem/blog/item/eac31e8a89b068ad0e244474.html
(想了下,还是整个贴到自己空间来了)
我需要的是要读取每一条的第一列信息,如下格式
ary,Ary Hong,,aaa@163.com,,,,
我是需要用户名ary,于是如下:
@echo off
for /f "delims=," %%i in (users.txt) do ......
每一行中,各信息以“,”分隔,所以定义了 "delims=,"后,就会自动读取以“,”分隔的第一个元素了。
虽然可以读取每一行中所需要的信息,但每次执行批处理的时候都找不到记录,后来才发现时文本文件的编码在作怪,如果文件编码是ANSI,是可以读取的,如果是UniCode就无法识别了。不晓得批处理文件的所有文本处理的命令都是有这个限制的,以后得留心了。
[BAT]读取文件某1/n行_烂笔头_百度空间 |
[BAT]读取文件某1/n行
2008-03-21 07:17
可以实现从某个文件中从指定行开始读取指定的行数输出@echo off setlocal enabledelayedexpansion set skip=1 ::skip为跳过行数 set loop=2 ::loop为输出行数 set filename=test.txt ::filename为所要读取的文件 set counter=0 if .%skip% == .0 (set opt="tokens=*" ) else set opt="skip=%skip% tokens=*" for /f %opt% %%i in (%filename%) do ( if !counter! geq !loop! goto wayout set /a counter+=1 echo %%i ) :wayout |
set skip=1 ::##应该为set n=2
::skip为跳过行数
@sug1
echo 文件名为 = %filename%
echo @跳过行数 = %n%
echo @输出行数 = %loop%
Echo =======================
for /f %opt% %%i in (%filename%) do (
if !counter! geq !loop! goto wayout
set /a counter+=1
echo %%i
)
:wayout
Echo =======================
pause
本文转载于 http://zhidao.baidu.com/question/351437453.html
写个批处理,读取某个文件的N行,第N个字符。例如: 读取C:\ log.txtlog.txt的内容为 abcd efg 123 ssssabcd efg 456ssssabcd efg 789ssss我只获取里面的 123 456 789 然后这3个数字相加,并求平均值,并以log2.txt保存在C盘。数字不定长度,可能是1000000,也可能是10000, 数字之后的都为 123 sss 234 sss 456 sss都是空格加SSS请教高手解决问题。
@echo off setlocal ENABLEDELAYEDEXPANSION set /a counts=0 set /a t=0
@echo off setlocal ENABLEDELAYEDEXPANSION set /a counts=0 set /a t=0set /a ave=0
for /f "tokens=3" %%i in (c:\log.txt) do (
set /a t=!t!+%%i
set /a counts=!counts!+1
set /a ave=!t!/!counts!
echo 总和=!t! 行数=!counts! 平均数=!ave!
)
echo !ave!>>c:\log2.txt
pause
以上代码实计读取并显示log.txt中各行的第三列数字之累计和,行数,累计平均数,并将最后的平均数追加到log2.txt
缺点:对数字小数点精度未测试.楼主可亲测
最后的平均数是取的整数,没有保留小数(如需要,还可以改进)
追问
我要有小数点的。 就是 11.11 22.22 33.33
回答
@echo off setlocal ENABLEDELAYEDEXPANSION set /a counts=0 set /a t=0set /a ave=0
set /a tail=0
for /f "tokens=3" %%i in (c:\log.txt) do (
set /a t=!t!+%%i
set /a counts=!counts!+1
set /a ave=!t!/!counts!
set /a tail=!t!%!counts!
echo 总和=!t! 次数=!counts! 平均数=!ave!.!tail:~0,2!
)
echo !ave!.!tail:~0,2!>>c:\log2.txt
pause
以上代码实现平均值保留两位小数
追问
你这样只是结果有小数点,那么取值的时候,还是没小数点,我的意思是 我要取的值有6位小数点,结果也有6位,最少取的值和结果的值都要4位。
回答
!tail:~0,2! 里面的2表示保留两位小数 你要求那么精细,就不要用bat好了 bat只适用于要求不高的加法,会自动抛弃小数,自己实现小数加法很麻烦,还要考虑进位,至少我无能为力
本文转载于 http://hi.baidu.com/zqsystem/blog/item/eac31e8a89b068ad0e244474.html
批处理读取文本中的每一行
(想了下,还是整个贴到自己空间来了)
我需要的是要读取每一条的第一列信息,如下格式
ary,Ary Hong,,aaa@163.com,,,,
我是需要用户名ary,于是如下:
@echo off
for /f "delims=," %%i in (users.txt) do ......
每一行中,各信息以“,”分隔,所以定义了 "delims=,"后,就会自动读取以“,”分隔的第一个元素了。
虽然可以读取每一行中所需要的信息,但每次执行批处理的时候都找不到记录,后来才发现时文本文件的编码在作怪,如果文件编码是ANSI,是可以读取的,如果是UniCode就无法识别了。不晓得批处理文件的所有文本处理的命令都是有这个限制的,以后得留心了。
相关文章推荐
- BAT批处理之文件与文件夹操作代码(附xcopy命令详解)
- 操作分布式文件之八:如何批量并行读写远程文件和事务补偿处理
- java各种文件(xml、properties、txt)处理操作的一道题目
- HDFS读取文件操作的处理流程源码分析
- PHP之文件系统处理_文件操作…
- C语言对文件的读写操作以及处理CSV文件的方法
- 使用bat批处理方式定期备份和定期删除oracle备份文件
- JS处理文件操作
- 文件处理续存操作
- bat批处理笔记——修改指定类型文件内指定内容
- Java 文件操作及字符流处理
- ASP.NET文件处理如何操作
- bat批处理命令:列出文件完整路径及搜索文件/备份文件
- C#文件操作、提取 、处理文件中数据
- PHP之文件系统处理_文件操作…
- [译]File API之JavaScript文件操作(3)- 进度事件和错误处理
- TX Text Control文字处理教程(2)- 文件操作
- Java中复制文件和文件夹的操作,异常未处理,无注释-_-!
- 批处理应用:根据文件内容进行重命名操作
- bat批处理笔记——创建指定类型文件示例