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

[文本处理] 批处理合并题目和答案求教

问题
1.txt内容:
  1. 1.xxxxx:
  2. 2.xxxxx:
  3. 3.xxxxx:
复制代码
2.txt内容
  1. 1.a 2.b 3.c
复制代码
合成如下形式:
  1. 1.xxxxx:a
  2. 2.xxxxx:b
  3. 3.xxxxx:c
复制代码
我是这么写的:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1-3" %%i in (a.txt) do (
  3. set a1=%%i
  4. set a2=%%j
  5. set a3=%%k
  6. for /l %%j in (1,1,3) do (
  7. set a%%j=!a%%j:~-1!
  8. )
  9. )
  10. set i=1
  11. for /f "delims=" %%m in (q.txt) do (
  12. rem another way => call echo %%m %%a!i!%%
  13. for %%i in (!i!) do echo %%m !a%%i!
  14. set /a i=i+1
  15. )
  16. pause
复制代码
吭吭哧哧写出来的,觉得太麻烦,而且也不能通用。
如果题目不止3道就不行了。有什么通用的解决方法么?
求教。

(for /f "tokens= 1* delims=." %%i in ('sed "s/ /\n/g" 2.txt') do (
set/p str=
        echo !str! %%j
))<1.txt>结果.txt

TOP

回复 2# zhanglei1371


     谢谢,sed 果然强大方便,是该学学了。

TOP

P可以这样
  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "tokens=*" %%i in (2.txt) do (
  3.      for %%j in (%%i) do (
  4.          set s1=%%j
  5.          set/p s2=
  6.          echo !s2!!s1:*.=!
  7.      )
  8. ))<1.txt
  9. pause
复制代码

TOP

回复 4# terse
  1. ()<1.txt
复制代码
的这种写法太牛了!!

TOP

返回列表