批量获取用户输入的最后两个字母以外的所有字母
Batch get all but last two letters of user input
我有以下代码,
@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%
你可以试试这个:
@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
set "var2=%stringL~0,-2%"
应该努力获取 string
的值,除了最后 2 个字符到 var2
.
(参见
set /?
来自文档的提示 - 事实上,除了最后 2 个字符之外的所有字符都作为示例显示)
我有以下代码,
@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%
你可以试试这个:
@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
set "var2=%stringL~0,-2%"
应该努力获取 string
的值,除了最后 2 个字符到 var2
.
(参见
set /?
来自文档的提示 - 事实上,除了最后 2 个字符之外的所有字符都作为示例显示)