Eu estou tentando analisar uma versão do arquivo do formulário 1.2.3.4 em suas partes componentes.
digamos que eu tenha o arquivo ParseVersion.bat
Eu quero chamá-lo com
call ParseVersion.bat 101.102.103.104
e em retorno, pegue quatro variáveis chamadas v1, v2, v3 e v4
minha tentativa
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
Depois de chamar isso de outro arquivo de lote, eu quero ser capaz de acessar %v1%
através %v4%
como variáveis de ambiente. Eu acho que o problema é devido ao SET
"s dentro de um setlocal
não persistir fora do setlocal
mas como eu faço isso?
Respostas:
1 para resposta № 1Faça um 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