[英]Windows batch - access SET variables outside a routine
我正在尝试将1.2.3.4格式的文件版本解析为其组成部分。
说我有ParseVersion.bat文件
我想用
call ParseVersion.bat 101.102.103.104
然后得到四个变量,分别称为v1,v2,v3和v4
我的尝试
setlocal ENABLEDELAYEDEXPANSION
set Version=%1
set Version=%Version:.=,%
set j=1
for %%i in (%Version%) do (
echo !j! %%i
set /a j=!j!+1
set v!j!=%%i
)
endlocal
从另一个批处理文件调用此函数后,我希望能够通过%v4%
作为环境变量访问%v1%
。 我猜问题是由于setlocal
内的SET
不在setlocal
外持久存在,但是我该怎么做?
拨打call
:
@echo off
set "$count=1"
set "$var=%1"
for %%a in (%$var:.= %) do call:next %%a
echo %var1% - %var2% - %var3% - %var4%
exit/b
:next
set "var%$count%=%1"
set /a $count+=1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.