>setlocal /?
开始批处理文件中环境改动的本地化操作。在执行 SETLOCAL 之后
所做的环境改动只限于批处理文件。要还原原先的设置,必须执
行 ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个
尚未执行的 SETLOCAL 命令,都会有一个隐含的 ENDLOCAL 被执行。
还有你在call什么?
尽管这样,利用预处理机制也可以传回变量- call :test "%pa%"
- goto :eof
-
- :test
- set "src=%patt%\"&set "dst="
- setlocal enabledelayedexpansion
- for /f "delims=" %%a in ("%pa%") do (
- set "str=%%a"
- set "pa=!str:%src%=%dst%!"
- )
- endlocal&set "str=%str%"&set "pa=%pa%"
- goto :eof
复制代码
|