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

[文本处理] 批处理判断最新文件提取参数问题

FTP 目录A文件夹下 不定期更新csv格式文件,如何实时判断并提取最新文件内含有指定字符的行,比如(power)数据汇总到新表啊,新表数据更新后累加到之前表后面不覆盖原表!提取两个或多个关键字的行呢?

回复 1# haichuan5121
  1. @echo off
  2. set "csv=%~0"
  3. set "dat=1.txt"
  4. set "txt=power"
  5. more +8 "%csv%"|find /i "%txt%" >>"%dat%"
  6. "%dat%"
  7. pause&exit
  8. :csv格式文件内容
  9. [文本处理] 判断最新文件提取参数问题
  10. FTP 目录A文件夹下 不定期更新csv格式文件,如何实时判断并提取最新文件内含有指定字符的行,
  11. 比如(power)数据汇总到新表啊,新表数据更新后累加到之前表后面不覆盖原表!提取两个或多个关键字的行呢?
  12. http://www.bathome.net/thread-43075-1-1.html
  13. 17:26 2017-02-02
复制代码

TOP

回复 2# CommandBatCmd


    看不明白啊!结果也没实现。。。求大神科普

TOP

回复 3# haichuan5121

应楼主要求,可根据这个详细的注释版,变态的修改。
  1. @echo off
  2. set "csv=%~0"     ||rem 指定FTP 目录A文件夹下 不定期更新csv格式文件的名称
  3. set "txt=power"   ||rem 设置在csv格式文件的每行中要提取的字符串
  4. set "dat=1.txt"   ||rem 指定之前数据表文件的名称,用于保存提取的行。
  5. type "%csv%"|find /i "%txt%" >>"%dat%"||rem 提取并保存到原表的尾部。
  6. notepad.exe "%dat%"||rem 查看结果
  7. pause&exit
复制代码

TOP

本帖最后由 haichuan5121 于 2017-2-3 18:38 编辑

回复 4# CommandBatCmd


   十分感谢大神提点;提取文本没问题了,里面关键数据怎么提取啊
多个关键字怎么提取啊,比如第一行是关键字 下面的列都是关键字后面一个的数据值,如
  power1  POWER2  POWER3  POWER4
  1  2  3  4
  1  2  2  3
  2  3  2  4
  3  2  2  3  
   .   .   .   .
   .    .   .   .

TOP

@echo off
set "NewFolder=E:\csv"
if not exist "%NewFolder%\" (
    md "%NewFolder%"
)
for /d /r E:\CSV\ %%a in (*) do (
    call :latest "%%a"
)
pause
goto :eof

:latest
for /f "delims=" %%a in ('dir /a-d /b /o-d /tw "%~1" 2^>nul') do (
    copy /y "%~1\%%a" "%NewFolder%"
    goto :eof
)
最新文件能提取了 ,但最新文件的最新名字不一样,文件夹下会一直生成最新的文件,怎么修改能只留最新的呢?比如1点提取了一个2点再提取的话就会有两个了 ,怎么始终保留最新一个;

TOP

回复 6# haichuan5121


    在启动批处理时,获取系统时间,把每个cvs文件的修改时间与之对比,最短的那个就是最新的。

TOP

返回列表