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

[文本处理] 批处理如何遍历获取文本文件的每一行?

我有一个文本文件,每行都有一个7位数的数据,我如何能遍历获取该文本的每一行呢,文本内容;
1112200
1112300
1112320
1112340
1112350
1134050
1134100
1134110
1134200

就楼主的问题,接着想。。怎么把这个参数在for循环中送给另一个程序作为调用参数?

TOP

  1. @echo off
  2. for /f "delims=" %%i in (1.txt) do echo %%i
  3. pause>nul
复制代码

TOP

ArdentMan 大哥真是个大好人啊,多谢多谢,真的非常感谢,

TOP

最终提取1905-01-00   -999.000  -999.000 -999
这样的四列数据到excel中以便进一步的做分析啊
求助。。。。。

TOP

  1. @Echo Off
  2. (For /F %%i In (name.txt) Do (
  3.   For /F "skip=44 delims=;" %%j In (%%i.mon) Do Echo %%j
  4. ))>new1.xls
复制代码
一路飘过的鸟~~~

TOP

感谢Batcher 的提点,是这样的,我有一个文本name.txt,里面包含了很多文件的名称,如下:
1112200
1112300
1112320
1112340
1112350
1134050
1134100
1134110
每个对应的文件内的数据比如1112200.txt的内容如下
# Title:                 GRDC STATION DATA FILE
#                        --------------
# Format:                DOS-ASCII
# Date format:           YYYY-MM-DD; YYYY-MM; YYYY; MM
# Field delimiter:       ;
#
# file generation data:  2011-07-07
#
# GRDC-No.:              1112300
# River:                 SENEGAL
# Station:               GALOUGO
# Country:               ML
# Latitude (dec. ?:       13.830000
# Longitude (de. ?:      -11.130000
# Catchment area (km?:   127000.000
# Altitude (m.a.s.l):          69.00
# Next d/s station:      1112100
# Remarks:               
#************************************************************
#
# Data Set Content:      MEAN MONTHLY DISCHARGE
#                        --------------------
# Unit:                  m?s
# Time series:           1905 - 1990
# No. of years:          86
# Last update:           1992-06-26
#
# Table Header:
#     YYYY-MM-DD - Date (DD=00)
#     hh:mm      - Time
#     Original   - original (provided) data
#     Calculated - GRDC modified data
#     Flag       - modification flag
#        -999 - missing data, no correction
#       300+n - n = number of missing values, when determined from mean daily discharge
#          99 - usage not recommended by the provider
#         100 - corrected data, no methode specified
#
# Data lines: 1032
# DATA
YYYY-MM-DD;hh:mm; Original; Calculated; Flag
1905-01-00;--:--;   -999.000;   -999.000; -999
1905-02-00;--:--;   -999.000;   -999.000; -999
1905-03-00;--:--;   -999.000;   -999.000; -999
1905-04-00;--:--;   -999.000;   -999.000; -999
1905-05-00;--:--;     14.000;   -999.000; -999
1906-01-00;--:--;    155.000;   -999.000; -999
我就是想通过name.txt依次获取文件名。然后对该文件提取其中的
1905-01-00;--:--;   -999.000;   -999.000; -999
1905-02-00;--:--;   -999.000;   -999.000; -999
1905-03-00;--:--;   -999.000;   -999.000; -999
1905-04-00;--:--;   -999.000;   -999.000; -999
1905-05-00;--:--;     14.000;   -999.000; -999
1906-01-00;--:--;    155.000;   -999.000; -999
这几列数据。并输出到excel中啊
哪个大侠帮忙啊
我是批处理新手,但需要处理大量的这样数据,求助各位大侠啊

TOP

16# lengguoyong


请把完整的需求更新到顶楼,并给出部分文本以便测试。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

@Echo Off
For /F "tokens=1* delims=:" %%i In ('Findstr /n .* name.txt') Do Set "_%%i=%%j"
set q= %_2%
for /f "skip=44 tokens=1 delims=;" %%i in (%q%.mon) do echo %%i>>new1.xls

这段代码是提取name.txt中的第二行数据,并以获取的第二行数据为文件名变量执行for /f "skip=44 tokens=1 delims=;" %%i in (%q%.mon) do echo %%i>>new1.xls
但我想弄个循环,就是循环读取name.txt中的每行数据,并执行for /f "skip=44 tokens=1 delims=;" %%i in (%q%.mon) do echo %%i>>new1.xls
这怎么弄啊,求高手门指点啊,自己摸索了半天也不会,数据处理量大,求指点啊
1

评分人数

    • batman: 请用code标签将代码括起PB -2

TOP

14# lengguoyong
我是指的你连行数都没搞清楚的这个问题。。。
***共同提高***

TOP

batman 大哥批评的对,但我要处理大量的数据,批处理还没学会,暂时只好求助了啊

TOP

楼主,你自己想想为啥,不要什么都问可以?
***共同提高***

TOP

奥  是我弄错了 ,不好意思,非常谢谢ArdentMan 大哥,

TOP

谢谢ArdentMan大哥,但为啥运行时第五个到第九个的数据能显示,但第十个没显示,提示说是 echo处于关闭状态啊

TOP

  1. @Echo Off&SetLocal EnableDelayedExpansion
  2. For /F "tokens=1* delims=:" %%i In ('Findstr /n .* a.txt') Do Set "_%%i=%%j"
  3. For /L %%a in (5,1,10) Do Echo !_%%a!
  4. Pause>Nul   
复制代码
一路飘过的鸟~~~

TOP

返回列表