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

[文本处理] 怎么让BAT脚本将两个文档的内容一一对应

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

  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
复制代码

TOP

以前见过一个for循环就能解决的。

TOP

回复 3# qixiaobin0715


    想不出来兄台请指教

TOP

大概就是50楼的样子。
http://www.bathome.net/thread-1239-4-1.html
1

评分人数

TOP

回复 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
复制代码

TOP

< 输入重定向命令,从文件中读入命令输入。
set /p str=<a.txt
上面只能取第一行的信息,而利用for循环可以依次取值。

TOP

然来已经解决了这个问题,真是神了,不过这段我看不懂

TOP

回复 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
复制代码
1

评分人数

TOP

回复 9# qixiaobin0715


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

TOP

返回列表