2013-03-27 8 views
13

Tôi gặp vấn đề với một vấn đề được thực hiện rất dễ dàng trong hầu hết các ngôn ngữ nhưng tôi dường như không thể tìm ra nó theo lô. Tôi muốn trích xuất ký tự cuối cùng của một chuỗi. Trong mã giả ..Lấy ký tự cuối cùng của một chuỗi từ một biến

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

Trong tiếng Anh ... nếu ký tự cuối cùng trong chuỗi là 0 thì ...

+0

để được trợ giúp, hãy nhập 'bộ trợ giúp'. – Endoro

Trả lời

33
set var=%var:~-1% 

thấy SET /? từ dấu nhắc cho 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 

Kết quả:

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= 

Đối với tuyên bố IF của bạn, hãy thử

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

khi sử dụng logic này tôi nhận được tất cả mọi thứ nhưng ký tự đầu tiên ... tức là với giá trị "kiểm tra" là trong biến nó trả về "est" – mgrenier

+0

xin lỗi lỗi của tôi tôi quên - tôi chỉ có 1 ... cảm ơn sự giúp đỡ của bạn ! – mgrenier

+0

Không rõ bạn trả lời vấn đề tiếp theo của tôi cũng là tôi cần tất cả các ký tự NHƯNG người cuối cùng ... cảm ơn đã đăng các ví dụ và kết quả !! Rất hữu ích – mgrenier