批处理语句返回最后出现字符“:”到字符串最后
时间: 2023-08-02 15:07:55 浏览: 51
以下是批处理语句实现:
```
set s=C:\Program Files\Java\jdk1.8.0_211\bin
set char=:
set pos=0
set revs=
for /F "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30" %%i in ('echo %s%^|rev') do set revs=%%j%%i%%k%%l%%m%%n%%o%%p%%q%%r%%s%%t%%u%%v%%w%%x%%y%%z%%a%%b%%c%%d%%e%%f%%g%%h%%i
for /F "delims=" %%i in ('echo %revs%^|find "%char%"') do set /A pos=len-%pos%, pos=%%i-1
set /A pos=len-%pos%
set /A len=len-s, len-=1
set /A length=len-pos
set /A length-=1
set substr=%s:~%pos%,%length%
echo %substr% REM 输出结果为:bin
```
解释:
1. 首先定义字符串`s`和字符`char`;
2. 使用`FOR /F`命令结合`ECHO`命令和管道符`|`将字符串反转,赋值给`revs`;
3. 使用`FIND`命令查找字符`:`在反转后的字符串中第一次出现的位置,赋值给`pos`;
4. 然后计算字符串`s`的长度`len`,并将`pos`和`len`作为参数,计算子字符串的长度`length`;
5. 最后使用`SET`命令和子字符串的起始位置`pos`和长度`length`截取原字符串`s`的子字符串,赋值给`substr`;
6. 输出变量`substr`,即为最后出现字符`:`到字符串最后的子字符串。