本帖最后由 qixiaobin0715 于 2024-9-26 09:52 编辑
回复 12# delab-1
还是以实例自己来观察的好。
1.把代码第7行的for循环摘出来,改造成易于理解的形式。在下面代码中,我需要提取b的值“2”,应当如何处理呢?可以在最后面设置变量str,使之延后显示,也就是说当变量str的值等于“b”时,下一个循环中,%%~i的值就是"2",示范代码如下:- @echo off
- setlocal enabledelayedexpansion
- for %%i in (a="1" b="2" c="3") do (
- echo,!str!
- echo,%%~i
- if /i "!str!"=="b" (
- set b=%%~i
- echo,********* b=%%~i
- )
- echo,---------------------
- echo,
- set "str=%%~i"
- )
- pause
复制代码 要显示的内容我都做了特殊标记。
2.这个问题你需要补习一下变量设置方面的知识,还是举一个例子来自己观察一下吧:- @echo off
- setlocal enabledelayedexpansion
- for /l %%i in (1,1,9) do (
- set str=!str!,%%i
- echo,!str!
- )
- pause
复制代码 请观察每次循环,变量str值的变化情况。
3.把前面2个问题搞清楚了,这个问题仔细想一想,也就差不多能够想通了。
关于第1条所说的“延后显示”的问题,这里也给出一个实例代码,每组显示中,前一行 为变量重新设置前的值,后一行 为变量重新设置后的值,看看是否是错位显示:- @echo off
- setlocal enabledelayedexpansion
- for /l %%i in (1,1,5) do (
- echo,!str!
- set str=%%i
- echo,!str!
- echo,-------------
- echo,
- )
- pause
复制代码
|