-3

我需要从 Windows 批处理中的变量中删除最后 3 个字符

set string=abcdefghij

我需要以下输出:

abcdefg

我可以使用以下方法从变量中删除前 3 个字符:

set newstring=%string:~3,100%
echo %newstring%

输出:

defghij

但是如何从字符串中删除最后 3 个字符 - 并将结果存储到变量中?

我可以使用 sed(来自 GnuWin32)显示没有最后 3 个字符的字符串,但我还需要将结果存储到另一个变量中。我需要一个比将结果存储在文件中然后将文件读入变量更好的解决方案(set /p newstring=<file.txt)

稍后注意:这个问题非常不同,它需要从多行文本中删除最后一个字符,而我需要从变量中删除最后一个字符。

4

1 回答 1

-1

只需使用负索引

set longtext=1234567890
:: Remove last 3 characters
echo %longtext:~0:-3%
:: show last three characters
echo %longtext:~-3%

输出:

1234567
890
于 2021-08-13T08:59:44.307 回答