标题: [文本处理] [已解决]批处理如何按指定条件提取出csv文件里每一行特定列的数据 [打印本页]
作者: haichuan5121 时间: 2016-9-15 13:43 标题: [已解决]批处理如何按指定条件提取出csv文件里每一行特定列的数据
求助文本提取指定单元格,输出行列的标号
求助大神
手头有一批文本,如图一所示,可否批处理下 把数据部分 大于0的数据提取出来 行标按第一行1XXXXx 列标按上面列标号, 目标输出如图二。
作者: haichuan5121 时间: 2016-9-15 13:44
第一个图是目标结果 第二个是源文件 ,比如第二行是1 的数有第1.9两列 就提取这两列标号2XXXD 1.9
作者: WHY 时间: 2016-9-15 23:19
本帖最后由 WHY 于 2016-9-15 23:33 编辑
- @echo off
- (for %%i in (*.csv) do (
- setlocal enabledelayedexpansion
- for /f "tokens=* usebackq" %%j in ("%%i") do (
- set "s=%%j"
- if not defined n (
- for %%k in ("!s:,=","!") do set /a n+=1 & set "_!n!=%%~k"
- ) else (
- set m=0
- for %%k in ("!s:,=","!") do (
- set /a m+=1
- if !m! GTR 1 (
- for %%L in (!m!) do (
- if "!_%%L!" NEQ "" if %%~k GTR 0 set "s=!s!,!_%%L!"
- )
- ) else set "s=%%~k,,"
- )
- if "!s:~-1!" NEQ "," echo;!s!
- )
- )
- endlocal
- ))>D:\ALL.csv
- pause
复制代码
作者: haichuan5121 时间: 2016-9-16 09:45
本帖最后由 haichuan5121 于 2016-9-16 10:23 编辑
回复 3# WHY
要求目的完美实现, 可否再帮忙完美下功能; (1)目的数据合并到一个单元格用/分开 (2)有结果输出的行也就是不是零的结果数据也输出,如数据结果1/1/1/2/1
谢谢大神们
作者: haichuan5121 时间: 2016-9-16 11:01
本帖最后由 haichuan5121 于 2016-9-16 11:02 编辑
要求目的完美实现, 可否再帮忙完美下功能; (1)目的数据合并到一个单元格用/分开 (2)有结果输出的行也就是不是零的结果数据也输出,如数据结果1/1/1/2/1 即有输出的行 把零的去掉有数的保留
谢谢大神们
作者: WHY 时间: 2016-9-16 11:33
本帖最后由 WHY 于 2016-9-16 11:35 编辑
回复 4# haichuan5121 - @echo off
- (for %%i in (*.csv) do (
- setlocal enabledelayedexpansion
- for /f "tokens=* usebackq" %%j in ("%%i") do (
- set "s=%%j"
- if not defined n (
- for %%k in ("!s:,=","!") do set /a n+=1 & set "_!n!=%%~k"
- ) else (
- set m=0
- for %%k in ("!s:,=","!") do (
- set /a m+=1
- if !m! GTR 1 (
- for %%L in (!m!) do (
- if "!_%%L!" NEQ "" if %%~k GTR 0 (
- set "s2=!s2!/!_%%L!"
- set "s3=!s3!/%%~k"
- )
- )
- ) else set "s1=%%~k"
- )
- if defined s2 (echo !s1!,,,!s2!,!s3!&set s2=&set s3=)
- )
- )
- endlocal
- ))>D:\ALL.csv
- pause
复制代码
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |