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

[文本处理] 如何一一对应逐行读取两个文本文件里的内容?

有2个文本文件user.txt和password.txt,现在要逐行读取2个文本文件里的内容,要一一对应,user里的第一行对应password里面的第一行,然后第二行直到第N行。请问各位大大该怎么写,我写了双for循环以后,user里的每一行都把password里的内容历遍了,这样很浪费时间,我要验证哪一对user,password是正确的,不是要穷举,求解,谢谢了

[ 本帖最后由 qwwshl 于 2008-12-16 19:55 编辑 ]

  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. for /f "tokens=2 delims=:" %%a in ('findstr /n .* user.txt') do (
  4. call:getpass !n! p
  5. echo.%%a !p!
  6. set /a n+=1
  7. )
  8. pause&goto:eof
  9. :getpass
  10. if %1==0 set/p%2=<password.txt&goto:eof
  11. for /f "skip=%1" %%a in (password.txt) do set "%2=%%a"&goto:eof
复制代码

[ 本帖最后由 rat 于 2008-12-17 00:37 编辑 ]

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (user.txt password.txt) do (
  4.   for /f %%j in ('type %%i') do (
  5.     set /a n+=1
  6.     set %%~ni!n!=%%j
  7.   )
  8.   set total=!n!
  9.   set n=0
  10. )
  11. for /l %%i in (1,1,%total%) do echo !user%%i! !password%%i!
  12. pause>nul
复制代码

TOP

可以兼容特殊字符
  1. @echo off
  2. set /a n=-1
  3. for /f "usebackq delims=" %%a in ("user.txt") do (
  4.   set /p=%%a <nul
  5.   call :loop
  6.   echo.
  7. )
  8. pause&goto:eof
  9. :loop
  10. set /a n+=1
  11. if %n% equ 0 (set skip=) else (set skip=skip=%n%)
  12. for /f "%skip% usebackq delims=" %%b in ("password.txt") do set /p=%%b<nul&goto:eof
复制代码
技术问题请到论坛发帖求助!

TOP

返回列表