在这个帖子里面看到的:
http://bbs.bathome.net/viewthrea ... 7%CF%B0%B1%CA%BC%C7- for %%z in (!tmp!) do echo !%%z!
-
- ::目前已知的摆脱call实现多层变量嵌套的最好方法,不少人用
复制代码 可是我的例子中就出问题了:- @echo off&setlocal enabledelayedexpansion
- for %%i in (1 2 3 4) do (
- set "x=%%i#"
- set "y=1#2#3#4#"
- call,set "z=%%y:!x!=%%"
- REM for %%j in ("!x!") do set "z=!y:%%~i=!"
- echo !z!
- )
- pause
复制代码 用CALL的话结果是:- 2#3#4#
- 1#3#4#
- 1#2#4#
- 1#2#3#
- 请按任意键继续. . .
复制代码 用for的话结果是:- #2#3#4#
- 1##3#4#
- 1#2##4#
- 1#2#3##
- 请按任意键继续. . .
复制代码 也就是说用for每次都少替换了个#,搞不懂到底问题出在哪里? |