2013-03-27 14 views
13

Ho riscontrato problemi con un problema molto facilmente nella maggior parte delle lingue, ma non riesco a capirlo in batch. Voglio estrarre l'ultimo carattere di una stringa. In pseudo codice ..Ottieni l'ultimo carattere di una stringa da una variabile

if var1.substring(var1.length, -1) = "0" 
    do something 

in inglese ... se l'ultimo carattere della stringa è 0 allora ...

+0

per aiuto, digitare 'help set'. – Endoro

risposta

33
set var=%var:~-1% 

vedere SET /? dal prompt per Docco.


@ECHO OFF 
SETLOCAL 
SET var=abcd 
SET var2=%var:~-1% 
CALL :show "-1" 
SET var2=%var:~-2% 
CALL :show "-2" 
SET var2=%var:~-3% 
CALL :show "-3" 
SET var2=%var:~1% 
CALL :show "1" 
SET var2=%var:~2% 
CALL :show "2" 
SET var2=%var:~3% 
CALL :show "3" 
SET var2=%var:~0,1% 
CALL :show "0,1" 
SET var2=%var:~0,2% 
CALL :show "0,2" 
SET var2=%var:~0,3% 
CALL :show "0,3" 
SET var2=%var:~0,-1% 
CALL :show "0,-1" 
SET var2=%var:~0,-2% 
CALL :show "0,-2" 
SET var2=%var:~0,-3% 
CALL :show "0,-3" 
SET var2=%var:~1,-1% 
CALL :show "1,-1" 
SET var2=%var:~1,-2% 
CALL :show "1,-2" 
SET var2=%var:~1,-3% 
CALL :show "1,-3" 
GOTO :eof 

:show 
echo Test with "var:~%~1" : var=%var% var2=%var2% 
GOTO :eof 

Risultati:

Test with "var:~-1" : var=abcd var2=d 
Test with "var:~-2" : var=abcd var2=cd 
Test with "var:~-3" : var=abcd var2=bcd 
Test with "var:~1" : var=abcd var2=bcd 
Test with "var:~2" : var=abcd var2=cd 
Test with "var:~3" : var=abcd var2=d 
Test with "var:~0,1" : var=abcd var2=a 
Test with "var:~0,2" : var=abcd var2=ab 
Test with "var:~0,3" : var=abcd var2=abc 
Test with "var:~0,-1" : var=abcd var2=abc 
Test with "var:~0,-2" : var=abcd var2=ab 
Test with "var:~0,-3" : var=abcd var2=a 
Test with "var:~1,-1" : var=abcd var2=bc 
Test with "var:~1,-2" : var=abcd var2=b 
Test with "var:~1,-3" : var=abcd var2= 

Per la vostra IF dichiarazione, provare

IF "%var:~-1%"=="0" (dosomething) else (dosomethingelse) 
+0

quando uso questa logica ottengo tutto tranne il primo carattere ... cioè con il valore "test" è nella variabile restituisce "est" – mgrenier

+0

scusate il mio errore ho dimenticato il - ho solo 1 ... grazie per il vostro aiuto ! – mgrenier

+0

In modo sconosciuto hai risposto anche al mio prossimo numero, che era che avevo bisogno di tutti i personaggi MA l'ultimo ... grazie per aver pubblicato gli esempi e i risultati !! Molto utile – mgrenier

Problemi correlati