如何在变量字符串替换中使用环境变量作为长度?

时间:2018-05-19 22:30:55

标签: batch-file

我有以下代码:

set name=James
echo %name:~0,4%

它显示变量的前4个字母:Jame 但我想为显示的字母数插入一个变量,我可以用set更改。像这样:

set num=3
set name=James
echo %name:~0,%num%%

结果应显示变量num的字符串值的前name个字符。

有什么方法可以获得理想的结果吗?

1 个答案:

答案 0 :(得分:1)

您可以在echo语句周围添加一层%,然后call echo

@echo off
set num=3
set name=James
call echo %%name:~0,%num%%%

或者您只需enabledelayedexpansion

@echo off
setlocal enabledelayedexpansion
set num=3
set name=James
echo !name:~0,%num%!

要获得delayedexpansion的更多帮助,只需从cmdline运行setlocal /?