批量获取用户输入的最后两个字母

时间:2016-02-01 20:07:14

标签: batch-file batch-processing

我有以下代码,

@echo off
cls
set /p word=
set string=%word%
set temp_str=%string%
set str_len=0
:lengthloop
if defined temp_str (
set temp_str=%temp_str:~1%
set /A str_len += 1
goto lengthloop )
echo %str_len%
set str_len=num
SET var2=%string:~0,-%num%
echo %var2%
SET var3=%string:~-2%
echo %var3%
pause

如何使用以下内容获取用户输入的最后两个字母以外的所有字母

SET var2=%string:~0,-%num%

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

@echo off
setlocal EnableDelayedExpansion
set /p word=
set string=%word%
set "num=2"
SET "var2=!string:~0,-%num%!"
echo %var2%
pause

或者,如果你已经在扩展的区块内:

@echo off
setlocal EnableDelayedExpansion
set /p word=
set string=%word%
set "num=2"
FOR /L %%G IN (%num%,1,%num%) DO SET "var2=!string:~0,-%%G!"
echo %var2%
pause

答案 1 :(得分:0)

set "var2=%stringL~0,-2%"

应该可以将string的值除var2之外的最后2个字符。

(见

set /?

从文档提示中 - 实际上除了最后2个字符之外的所有字符都显示为示例)