标题: [文本处理] [已解决]批处理如何按规则提取文本内容并输出到对应路径的文本里? [打印本页]
作者: forevergt 时间: 2016-1-10 00:02 标题: [已解决]批处理如何按规则提取文本内容并输出到对应路径的文本里?
现有一文本内容如下:
a|1|852963
a|2|78412346
a|3|778945214
b|1|135497
b|2|789465421
b|3|7812168
要求:
将第一列为a,第二列为1的对应第三列内容输出到D:\a\1\abc.txt
将第一列为a,第二列为2的对应第三列内容输出到D:\a\2\abc.txt
将第一列为a,第二列为3的对应第三列内容输出到D:\a\3\abc.txt
将第一列为b,第二列为1的对应第三列内容输出到D:\b\1\abc.txt
将第一列为b,第二列为2的对应第三列内容输出到D:\b\2\abc.txt
将第一列为b,第二列为3的对应第三列内容输出到D:\b\3\abc.txt
作者: pcl_test 时间: 2016-1-10 00:21
本帖最后由 pcl_test 于 2016-1-10 00:32 编辑
- @echo off
- for /f "tokens=1-3delims=|" %%a in ('type "a.txt"')do (
- if not exist "D:\%%a\%%b\" md "D:\%%a\%%b\"
- rem 追加内容改为>>
- >"D:\%%a\%%b\abc.txt" echo;%%c
- )
- pause
复制代码
作者: /zhqsystem/zhq 时间: 2016-1-10 00:50
回复 1# forevergt
水一个
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('type "%~f1"')do (
- set "new=%%i"
- set "new=!new:|=\!"
- for /f "delims=" %%j in ("d:\!new!")do (
- if not exist "%%~dpj" md "%%~dpj"
- if not exist "%%~dpjabc.txt\" (
- if not exist "%%~dpjabc.txt" cd.>"%%~dpjabc.txt"
- if exist "%%~dpjabc.txt" (echo,%%~nxj)>>"%%~dpjabc.txt"
- )
- )
- )
- pause
复制代码
作者: forevergt 时间: 2016-1-10 01:19
回复 2# pcl_test
如果我需要每个abc.txt文本第一行都有一串字符abcde,然后下面第二行开始才是指定第三列的内容,要怎么写?
作者: pcl_test 时间: 2016-1-10 01:48
回复 4# forevergt
echo;abcde&echo;%%c
作者: forevergt 时间: 2016-1-10 02:06
本帖最后由 forevergt 于 2016-1-10 02:07 编辑
回复 5# pcl_test - @echo off
- for /f "tokens=1-3delims=|" %%a in ('type "a.txt"')do (
- if not exist "D:\%%a\%%b\" md "D:\%%a\%%b\"
- if not exist "D:\%%a\%%b\abc.txt" cd.> "D:\%%a\%%b\abc.txt"
- for /f "delims=" %%i in (D:\%%a\%%b\abc.txt) do (
- if %%~zi equ 0 echo abcde >"D:\%%a\%%b\abc.txt"
- )
- >>"D:\%%a\%%b\abc.txt" echo;%%c
- )
- pause
复制代码
为什么我这样写abc.txt只显示:
abcde
“第三行对应第三列”
??
作者: forevergt 时间: 2016-1-10 02:12
回复 pcl_test 为什么我这样写abc.txt只显示:
abcde
“第三行对应第三列”
??
forevergt 发表于 2016-1-10 02:06
abcde与“第三行对应第三列”中间应该还有两行,却没了
作者: forevergt 时间: 2016-1-10 02:26
回复 5# pcl_test
已解决问题:- @echo off
- for /f "tokens=1-3delims=|" %%a in ('type "a.txt"')do (
- if not exist "D:\%%a\%%b\" md "D:\%%a\%%b\"
- if not exist "D:\%%a\%%b\abc.txt" echo abede>"D:\%%a\%%b\abc.txt"
- >>"D:\%%a\%%b\abc.txt" echo;%%c
- )
- pause
复制代码
非常感谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |