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

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

本帖最后由 asdbb 于 2015-6-30 11:10 编辑

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

TOP

本帖最后由 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

TOP

  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%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

可以生成啊,谢谢,还有个要是生成结果第一行我要加上些字符如何处理,还有就是那两个文档的第一行有字符但是不需要生成到文档中如何处理???非常感谢版主

TOP

回复 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%
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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
还有些小问题,文件一的最后字符能否删除?原始文件文件一多一行的

TOP

回复 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

评分人数

    • asdbb: 非常感谢技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

可以满足现有需求,以后得学习这个BAT啊

TOP

回复 9# asdbb
问题得到解决后请在标题最前面注明[已解决]
http://www.bathome.net/thread-3473-1-1.html

TOP

  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. }
复制代码
我去,命令行竟然可以直接无视执行策略。浪费表情了。

TOP

你这个是什么啊,怎么看不懂啊

TOP

回复 12# asdbb


11楼的代码保存成 test.bat 执行看看
原理是用BAT生成一段代码交给PowerShell去执行

TOP

回复 13# DAIC


    谢谢!

TOP

返回列表