簡體   English   中英

Windows批處理-在例程之外訪問SET變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM