四,for 嵌套中,越稳定的循环应该越少参与递归
1,参数固定的 for 应位于最外层- for /l %%a in (1 1 1000) do (
- for /f "tokens=2" %%b in ("abc test 123") do echo %%a%%b
- )
复制代码
- for /f "tokens=2" %%a in ("abc test 123") do (
- for /l %%b in (1 1 1000) do echo %%a%%b
- )
复制代码 rem 同样的代码仅仅是次序不同,实现同样的效果的用时却是后者更快,因为那句 for /f 的结果是恒定的,所以前者产生了 999 次多余的循环
2,越小的循环越靠外- for /l %%a in (1 1 1000) do (
- for /l %%b in (1 1 10) do title %%a%%b
- )
复制代码
- for /l %%a in (1 1 10) do (
- for /l %%b in (1 1 1000) do title %%a%%b
- )
复制代码 rem 这两段中的 for 循环的参数同样都是“不稳定的”,但是后者就是比前者快上一筹
3,越核心的递归层,命令最好越少- for /l %%a in (1 1 100) do (
- for /l %%b in (1 1 100) do (
- set /a n=%%b*2
- echo %%a,!n!
- )
- )
复制代码
- for /l %%a in (1 1 100) do (
- set /a n=%%a*2
- for /l %%b in (1 1 100) do echo !n!,%%b
- )
复制代码 rem 前后代码的输出量是相同的,但是因为后者内层的循环中命令很少,所以效率就高了很多 |