从变量得到一个字符串的最后一个字符 [英] Get last character of a string from a variable

查看:232
本文介绍了从变量得到一个字符串的最后一个字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有在大多数语言很容易实现的一个问题问题,但我似乎无法推测出来的批次。我想提取字符串的最后一个字符。在伪code ..

 如果var1.substring(var1.length,-1)=0
  做一点事

在英国...如果字符串中的最后一个字符是0,那么...


解决方案

 组VAR =%VAR:〜-1%

SET /?从提示docco。


  @ECHO OFF
SETLOCAL
SET VAR = ABCD
SET VAR2 =%VAR:〜-1%
CALL:显示-1
SET VAR2 =%VAR:〜-2%
CALL:显示-2
SET VAR2 =%VAR:〜-3%
CALL:显示-3
SET VAR2 =%VAR:〜1%
CALL:显示1
SET VAR2 =%变种:〜2%
CALL:显示2
SET VAR2 =%VAR:〜3%
CALL:显示3
SET VAR2 =%VAR:〜0.1%
CALL:秀0,1
SET VAR2 =%VAR:0,2〜%
CALL:秀0,2
SET VAR2 =%VAR:0,3〜%
CALL:秀0,3
SET VAR2 =%VAR:〜0,-1%
CALL:显示0,-1
SET VAR2 =%VAR:〜0,-2%
CALL:显示0 -2
SET VAR2 =%VAR:〜0,-3%
CALL:显示0 -3
SET VAR2 =%VAR:1〜-1%
CALL:显示1,-1
SET VAR2 =%VAR:1〜,-2%
CALL:显示1,-2
SET VAR2 =%VAR:1〜-3%
CALL:显示1,-3
GOTO:EOF:显示
回声测试与VAR:〜%〜1:VAR =%VAR%VAR2 =%VAR2%
GOTO:EOF

结果:

 与VAR:〜-1:测试VAR = ABCD VAR2 = D
测试以VAR:〜-2:VAR = ABCD VAR2 = CD
测试以VAR:〜-3:VAR = ABCD VAR2 = BCD
测试以VAR:〜1:VAR = ABCD VAR2 = BCD
测试以VAR:〜2中:var = ABCD VAR2 = CD
测试以VAR:〜3中:var = ABCD VAR2 = D
测试以VAR:0,1〜:VAR = ABCD VAR2 =一
测试以VAR:0,2〜:VAR = ABCD VAR2 = AB
用:〜0,3 VAR:测试VAR = ABCD VAR2 = ABC
测试以VAR:〜0,-1:VAR = ABCD VAR2 = ABC
测试以VAR:〜0,-2:VAR = ABCD VAR2 = AB
测试以VAR:〜0,-3:VAR = ABCD VAR2 =一
测试以VAR:〜1,-1:VAR = ABCD VAR2 = BC
测试以VAR:〜1,-2:VAR = ABCD VAR2 = B
测试以VAR:1〜-3:VAR = ABCD VAR2 =

有关你的如果语句,尝试

  IF%VAR:〜-1%==0(DoSomething的)其他(dosomethingelse)

I am having issues with a problem accomplished very easily in most languages but I can't seem to figure it out in batch. I want to extract the last character of a string. In pseudo code..

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

In english...if the last character in the string is 0 then...

解决方案

set var=%var:~-1%

see SET /? from the prompt for 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

Results:

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=

For your IF statement, try

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

这篇关于从变量得到一个字符串的最后一个字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆