Sto cercando di analizzare una versione di file del modulo 1.2.3.4 nelle sue parti componenti.
dire che ho il file ParseVersion.bat
Voglio chiamarlo con
call ParseVersion.bat 101.102.103.104
e in cambio ottieni quattro variabili chiamate v1, v2, v3 e v4
il mio tentativo
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
Dopo aver chiamato questo da un altro file batch, voglio poter accedere %v1%
attraverso %v4%
come variabili d'ambiente. Immagino che il problema sia dovuto al SET
"s dentro a setlocal
non persistendo al di fuori del setlocal
, ma come faccio a fare questo?
risposte:
1 per risposta № 1Fare un 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