Board logo

标题: [文本处理] 怎么让BAT脚本将两个文档的内容一一对应 [打印本页]

作者: lihui612ld    时间: 2021-10-5 14:04     标题: 怎么让BAT脚本将两个文档的内容一一对应

有两个文档,a.txt内容为
1
2
3
4
5
b.txt内容为
a
b
c
d
e,怎么做才能让脚本将两个文档的内容一一对应,就是把a.txt\b.txt里的内容当变量放到C脚本里执行,但是需要每一行都能对应上
作者: idwma    时间: 2021-10-5 15:22

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in (a.txt) do (
  4. set /a n+=1
  5. set a.txt.!n!=%%i
  6. )
  7. set n=
  8. for /f "delims=" %%i in (b.txt) do (
  9. set /a n+=1
  10. set b.txt.!n!=%%i
  11. )
  12. for /l %%i in (1,1,%n%) do echo !a.txt.%%i! !b.txt.%%i!
  13. pause
复制代码

作者: qixiaobin0715    时间: 2021-10-5 15:27

以前见过一个for循环就能解决的。
作者: idwma    时间: 2021-10-5 16:13

回复 3# qixiaobin0715


    想不出来兄台请指教
作者: qixiaobin0715    时间: 2021-10-5 16:18

大概就是50楼的样子。
http://www.bathome.net/thread-1239-4-1.html
作者: idwma    时间: 2021-10-5 16:27

回复 5# qixiaobin0715


    前辈们真神了呀
  1. @echo off
  2. (for /f "delims=" %%a in (a.txt) do (
  3.     endlocal
  4.     set/p =%%a<nul
  5.     setlocal enabledelayedexpansion
  6.     set /p t2=
  7.     if defined t2 echo;!t2!
  8. ))<b.txt
  9. pause
复制代码

作者: qixiaobin0715    时间: 2021-10-5 16:37

< 输入重定向命令,从文件中读入命令输入。
set /p str=<a.txt
上面只能取第一行的信息,而利用for循环可以依次取值。
作者: lihui612ld    时间: 2021-10-8 09:03

然来已经解决了这个问题,真是神了,不过这段我看不懂
作者: qixiaobin0715    时间: 2021-10-8 09:16

回复 8# lihui612ld
上面代码需求不同,限定条件不同。如果a.txt和b.txt行数相同(因为你要一一对应),简化为下面代码,你可能更容易理解些。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f %%a in (a.txt) do (
  4. set /p str=
  5. echo,%%a !str!
  6. ))<b.txt
  7. pause
复制代码

作者: lihui612ld    时间: 2021-10-12 09:39

回复 9# qixiaobin0715


    @echo off
setlocal enabledelayedexpansion
(for /l %%a in (0,1,5) do (
set /p str=
echo,!str!
))<b.txt
pause
明白了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2