找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 38105|回复: 13

[文本处理] [已解决]有没有办法批处理合并两个文本中的部分信息啊,

[复制链接]
发表于 2015-3-27 13:16:07 | 显示全部楼层 |阅读模式
本帖最后由 asdbb 于 2015-6-30 11:10 编辑

如题求助啊,有两个文档,合并成一个新文档,但是两个文档中只提取部分资料,文档行中用逗号分开的。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-3-27 13:44:21 | 显示全部楼层
 楼主| 发表于 2015-3-27 13:55:06 | 显示全部楼层
本帖最后由 asdbb 于 2015-3-27 14:02 编辑

文件一
101112345676,00000,1,1234567891012344,,9876543210123456,00000,1
101112345677,00000,1,1234567891012345,,9876543210123456,00000,1
文件2 名字111.txt
111.111.1112,1234567891,1234567891123456,
111.111.1112,1234567892,1234567891123457,
生成文件
1234567891,1234567891123456,00000,1,文件2的文件名111,101112345676,1234567891012344,,9876543210123456,00000,1
1234567892,1234567891123457,00000,1,文件2的文件名111,101112345677,1234567891012344,,9876543210123456,00000,1
发表于 2015-3-27 14:20:14 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "FileA=1.txt"
  4. set "FileB=111.txt"
  5. set "FileC=临时.txt"
  6. set "FileD=结果.txt"

  7. (for /f "delims=" %%i in (%FileA%) do (
  8.     set /p str=
  9.     echo !str!%%i
  10. ))<%FileB% >%FileC%

  11. set "FileBname=%FileB:~0,-4%"
  12. (for /f "tokens=2-11 delims=," %%a in (%FileC%) do (
  13.     echo %%a,%%b,%%d,%%e,%FileBname%,%%c,%%f,,%%g,%%h,%%i
  14. ))>%FileD%
复制代码
 楼主| 发表于 2015-3-27 14:29:53 | 显示全部楼层
可以生成啊,谢谢,还有个要是生成结果第一行我要加上些字符如何处理,还有就是那两个文档的第一行有字符但是不需要生成到文档中如何处理???非常感谢版主
发表于 2015-3-27 14:31:58 | 显示全部楼层
回复 5# asdbb
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "FileA=1.txt"
  4. set "FileB=111.txt"
  5. set "FileC=临时.txt"
  6. set "FileD=结果.txt"

  7. (for /f "delims=" %%i in (%FileA%) do (
  8.     set /p str=
  9.     echo !str!%%i
  10. ))<%FileB% >%FileC%

  11. set "FileBname=%FileB:~0,-4%"
  12. >%FileD% echo 我要加上些字符
  13. (for /f "skip=1 tokens=2-11 delims=," %%a in (%FileC%) do (
  14.     echo %%a,%%b,%%d,%%e,%FileBname%,%%c,%%f,,%%g,%%h,%%i
  15. ))>>%FileD%
复制代码
 楼主| 发表于 2015-3-27 14:36:46 | 显示全部楼层
本帖最后由 asdbb 于 2015-3-27 15:01 编辑

文件一
字符串
101112345676,00000,1,1234567891012344,,9876543210123456,00000,1
101112345677,00000,1,1234567891012345,,9876543210123456,00000,1
字符11111
文件2 名字111.txt
字符串
111.111.1112,1234567891,1234567891123456,
111.111.1112,1234567892,1234567891123457,
生成文件
我要加上些字符
1234567891,1234567891123456,00000,1,文件2的文件名111,101112345676,1234567891012344,,9876543210123456,00000,1
1234567892,1234567891123457,00000,1,文件2的文件名111,101112345677,1234567891012344,,9876543210123456,00000,1
还有些小问题,文件一的最后字符能否删除?原始文件文件一多一行的
发表于 2015-3-27 15:16:02 | 显示全部楼层
回复 7# asdbb
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "FileA=1.txt"
  4. set "FileB=111.txt"
  5. set "FileC=临时.txt"
  6. set "FileD=结果.txt"

  7. (for /f "delims=" %%i in (%FileB%) do (
  8.     set /p str=
  9.     echo %%i!str!
  10. ))<%FileA% >%FileC%

  11. set "FileBname=%FileB:~0,-4%"
  12. >%FileD% echo 我要加上些字符
  13. (for /f "skip=1 tokens=2-11 delims=," %%a in (%FileC%) do (
  14.     echo %%a,%%b,%%d,%%e,%FileBname%,%%c,%%f,,%%g,%%h,%%i
  15. ))>>%FileD%
复制代码

评分

参与人数 1技术 +1 收起 理由
asdbb + 1 非常感谢

查看全部评分

 楼主| 发表于 2015-3-27 15:18:30 | 显示全部楼层
可以满足现有需求,以后得学习这个BAT啊
发表于 2015-3-28 15:42:29 | 显示全部楼层
回复 9# asdbb
问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html
发表于 2015-3-28 23:03:54 | 显示全部楼层

  1. if ($true){}# == ($true){}# goto ___yiwuyun
  2. <#
  3. :___yiwuyun
  4. @echo off&setlocal&cls
  5. (echo $strPath="%~dp0"&type "%~f0")|powershell -command -
  6. pause
  7. exit/b 0
  8. #>
  9. $file1="1.txt";$file2="111.txt";
  10. $file2BaseName=(gi ($strPath+$file2)).BaseName;
  11. $f1c=gc ($strPath+$file1);
  12. $f2c=gc ($strPath+$file2);
  13. "我要加上些字符";
  14. for($i=0;$i -lt $f1c.count;$i++){
  15.   $temp1=$f1c[$i] -split ",";
  16.   $temp2=$f2c[$i] -split ",";
  17.   $temp2[1]+","+$temp2[2]+","+$temp1[1]+","+$temp1[2]+","+$file2BaseName+","+$temp1[0]+","+$temp1[3]+","+$temp1[4]+","+$temp1[5]+","+$temp1[6]+","+$temp1[7];
  18. }


复制代码
我去,命令行竟然可以直接无视执行策略。浪费表情了。
 楼主| 发表于 2015-6-30 11:12:47 | 显示全部楼层
你这个是什么啊,怎么看不懂啊
发表于 2015-6-30 11:16:02 | 显示全部楼层
回复 12# asdbb


11楼的代码保存成 test.bat 执行看看
原理是用BAT生成一段代码交给PowerShell去执行
 楼主| 发表于 2015-6-30 14:06:07 | 显示全部楼层
回复 13# DAIC


    谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 00:02 , Processed in 0.024468 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表