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

[文本处理] [已解决] 关于批处理提取文本字符窜的问题

本帖最后由 fulijung 于 2015-1-21 22:31 编辑

有一个待处理的名为001.txt的文本内容如下

员工姓名  张三   所属部门  企划课   学历  职高
业余爱好  第一爱好  下棋
业余爱好  第二爱好  绘画
业余爱好  第三爱好  打球
员工姓名  李四   所属部门  采购课   学历  大专
业余爱好  第一爱好  唱歌
业余爱好  第二爱好  旅游
业余爱好  第三爱好  打球  
业余爱好  第四爱好  编程
员工姓名  王五   所属部门  制造课   学历  中专
业余爱好  第一爱好  飚车
业余爱好  第二爱好  旅游

要求处理后变成如下内容(只保留姓名与爱好,顺序不能搞乱,其他字符都不要,)期待高手帮忙解决,不胜感激
同时也可以让大家把以前学习的知识充分的利用起来。

张三
下棋
绘画
打球
李四
唱歌
旅游
打球  
编程
王五
飚车
旅游

apang 生气了,楼主另发贴吧,在顶楼把样本、结果和特例都讲清楚
你快他也快,大家快才是真的快,好迪真快

TOP

顶起来,急需解决,麻烦大家处理一下

TOP

回复 6# apang


    您这个碰巧每行都分成了3部分好处理但是如果每行分成的段数不同该怎么处理啊? 比如后一个引号后面还有文字呢?
员工姓名  张三   "所属部门  企划课   学历  职高" 性别  女
业余爱好  第一爱好  下棋
业余爱好  第二爱好  绘画
业余爱好  第三爱好  打球
员工姓名  李四   "所属部门  采购课   学历  大专" 性别  男
业余爱好  第一爱好  唱歌
业余爱好  第二爱好  旅游
业余爱好  第三爱好  打球  
业余爱好  第四爱好  编程
员工姓名  王五   "所属部门  制造课   学历  中专" 性别  男
业余爱好  第一爱好  飚车
业余爱好  第二爱好  旅游
处理成这样
所属部门  企划课   学历  职高
业余爱好  第一爱好  下棋
业余爱好  第二爱好  绘画
业余爱好  第三爱好  打球
所属部门  采购课   学历  大专
业余爱好  第一爱好  唱歌
业余爱好  第二爱好  旅游
业余爱好  第三爱好  打球  
业余爱好  第四爱好  编程
所属部门  制造课   学历  中专
业余爱好  第一爱好  飚车
业余爱好  第二爱好  旅游
我觉得非用findstr不可,大家帮忙弄一下

TOP

回复 6# apang

大哥辛苦了,我试一下,该休息了,谢谢啦

TOP

for /f  tokens^=3^ delims^=^" %%i in ('findstr "员工姓名"001.txt') do (
echo  "%%~i")>>002.txt
我这个代码是用引号作为分割符号的大家还有什么其他办法吗,变成如下内容即可
所属部门  企划课   学历  职高
下棋
绘画
打球
所属部门  采购课   学历  大专
唱歌
旅游
打球  
编程
所属部门  制造课   学历  中专
飚车
旅游

TOP

回复 4# fulijung


    不能有下次
  1. @echo off
  2. for /f "tokens=2*" %%a in (a.txt) do echo,%%~b
  3. pause
复制代码

TOP

我用一下代码顺序变乱了
for /f  tokens^=3^ delims^=^" %%i in ('findstr "员工姓名"001.txt') do (
echo  "%%~i")>>002.txt
for /f "tokens=3" %%i in ('findstr "业余爱好" 001.txt') do (
if "%%i"=="业余爱好" echo  %%j)>>002.txt

变成如下顺序不对了,怎么弄啊
所属部门  企划课   学历  职高
所属部门  采购课   学历  大专
所属部门  制造课   学历  中专
第一爱好  下棋
第二爱好  绘画
第三爱好  打球
第一爱好  唱歌
第二爱好  旅游
第三爱好  打球  
第四爱好  编程
第一爱好  飚车
第二爱好  旅游

TOP

对不起,文件里有引号我重新发一下,如果需要引号里的文字(但不包括引号)怎么弄呢,期待解决呢,这次不要姓名,只要引号里边的东西
员工姓名  张三   "所属部门  企划课   学历  职高"
业余爱好  第一爱好  下棋
业余爱好  第二爱好  绘画
业余爱好  第三爱好  打球
员工姓名  李四   "所属部门  采购课   学历  大专"
业余爱好  第一爱好  唱歌
业余爱好  第二爱好  旅游
业余爱好  第三爱好  打球  
业余爱好  第四爱好  编程
员工姓名  王五   "所属部门  制造课   学历  中专"
业余爱好  第一爱好  飚车
业余爱好  第二爱好  旅游

处理成一下内容:

所属部门  企划课   学历  职高
下棋
绘画
打球
所属部门  采购课   学历  大专
唱歌
旅游
打球  
编程
所属部门  制造课   学历  中专
飚车
旅游

TOP

回复 2# apang
试了一下暂时通过,谢谢

TOP

  1. @echo off
  2. for /f "tokens=1-3" %%a in (001.txt) do (
  3.         if "%%a" == "员工姓名" (echo,%%b) else echo,%%c
  4. )
  5. pause
复制代码

TOP

返回列表