标题: [文本处理] 批处理判断最新文件提取参数问题 [打印本页]
作者: haichuan5121 时间: 2017-2-2 13:10 标题: 批处理判断最新文件提取参数问题
FTP 目录A文件夹下 不定期更新csv格式文件,如何实时判断并提取最新文件内含有指定字符的行,比如(power)数据汇总到新表啊,新表数据更新后累加到之前表后面不覆盖原表!提取两个或多个关键字的行呢?
作者: CommandBatCmd 时间: 2017-2-2 17:30
回复 1# haichuan5121 - @echo off
- set "csv=%~0"
- set "dat=1.txt"
- set "txt=power"
- more +8 "%csv%"|find /i "%txt%" >>"%dat%"
- "%dat%"
- pause&exit
-
- :csv格式文件内容
- [文本处理] 判断最新文件提取参数问题
- FTP 目录A文件夹下 不定期更新csv格式文件,如何实时判断并提取最新文件内含有指定字符的行,
- 比如(power)数据汇总到新表啊,新表数据更新后累加到之前表后面不覆盖原表!提取两个或多个关键字的行呢?
- http://www.bathome.net/thread-43075-1-1.html
- 17:26 2017-02-02
复制代码
作者: haichuan5121 时间: 2017-2-2 18:36
回复 2# CommandBatCmd
看不明白啊!结果也没实现。。。求大神科普
作者: CommandBatCmd 时间: 2017-2-2 20:37
回复 3# haichuan5121
应楼主要求,可根据这个详细的注释版,变态的修改。- @echo off
- set "csv=%~0" ||rem 指定FTP 目录A文件夹下 不定期更新csv格式文件的名称
- set "txt=power" ||rem 设置在csv格式文件的每行中要提取的字符串
- set "dat=1.txt" ||rem 指定之前数据表文件的名称,用于保存提取的行。
- type "%csv%"|find /i "%txt%" >>"%dat%"||rem 提取并保存到原表的尾部。
- notepad.exe "%dat%"||rem 查看结果
- pause&exit
复制代码
作者: haichuan5121 时间: 2017-2-3 09:15
本帖最后由 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
. . . .
. . . .
作者: haichuan5121 时间: 2017-2-3 18:35
@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点再提取的话就会有两个了 ,怎么始终保留最新一个;
作者: CommandBatCmd 时间: 2017-2-3 20:41
回复 6# haichuan5121
在启动批处理时,获取系统时间,把每个cvs文件的修改时间与之对比,最短的那个就是最新的。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |