|
|
发表于 2010-8-27 21:32:21
|
显示全部楼层
用实例说话:- @echo off
- echo.
- echo 1、启用变量延迟之前——成功
- echo.
- for /f "tokens=*" %%i in ("中华人民共和国万岁 万岁 万万岁") do echo %%i
- pause>nul
- echo.
- echo 2、启用变量延迟之前——失败
- echo.
- for /f "tokens=*" %%i in ("中华人民共和国万岁 万岁 万万岁") do (
- set var=%%i
- echo %var%
- )
- pause>nul
- setlocal EnableDelayedExpansion
- echo.
- echo 3、启用变量延迟之后——失败
- echo.
- for /f "tokens=1,2,3" %%i in ("中华人民共和国万岁 万岁 万万岁") do (
- set var1=%%i
- set var2=%%j
- set var3=%%k
- echo %var1% %var2% %var3%
- )
- pause>nul
- setlocal EnableDelayedExpansion
- echo.
- echo 4、启用变量延迟之后——成功
- echo.
- for /f "tokens=1,2,3" %%i in ("中华人民共和国万岁 万岁 万万岁") do (
- set var1=%%i
- set var2=%%j
- set var3=%%k
- echo !var1! !var2! !var3!
- )
- pause>nul
- echo _________________________________________________________________
- echo.
- echo 启用变量延迟:
- echo 1、启用之前使用“setlocal EnableDelayedExpansion”声明/开启。
- echo 2、启用变量延迟之后,变量的百分号要换成感叹号。
- echo.
- echo 为什么用“set var=%%i”转换变量?
- echo 因为有些情况下用“%%i”无法或不方便命令执行。
- echo 变量延迟就是预先设置(set)好变量(%var%)再执行后面的命令(echo)
- echo 说白了,就是给命令设置一个可以执行的前提条件。
- echo 变量延迟经常和FOR和SET混在一起,必须好好学学。
- echo.
- pause>nul
复制代码 |
|