这种嵌套方式在文件大时会慢得可怕,因为它是指数级的,循环次数是内外相乘,我们对算法进行优化时,最主要的手段就是将指数级的循环方式用算术级的循环来实现,比如:- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1,3 delims=:;" %%a in (2.txt) do set @%%a=%%b
- for /f "tokens=1,2 delims=:" %%a in (1.txt) do echo %%a:%%b;!@%%a!
- pause
- ::使用两个并联的同级循环,而非串联的父子循环,这样可以大大节约循环次数
复制代码 2.txt 如果与 1.txt 严格一一对应的话,也可以用单循环:- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=;" %%a in (1.txt) do (
- set /p str=
- echo %%a;!str:*;=!
- ))<2.txt
- pause
复制代码
|