Batch file 如何在变量字符串替换中使用环境变量作为长度?
我有以下代码:Batch file 如何在变量字符串替换中使用环境变量作为长度?,batch-file,Batch File,我有以下代码: set name=James echo %name:~0,4% 并显示变量的前4个字母:Jame 但是我想为显示的字母数插入一个变量,我可以使用set进行更改。大概是这样的: set num=3 set name=James echo %name:~0,%num%% 结果应该显示变量name的字符串值的第一个num字符 有什么方法可以得到想要的结果吗?您可以在echo语句周围添加一层%,然后调用echo它 @echo off set num=3 set name=James
set name=James
echo %name:~0,4%
并显示变量的前4个字母:Jame
但是我想为显示的字母数插入一个变量,我可以使用
set
进行更改。大概是这样的:
set num=3
set name=James
echo %name:~0,%num%%
结果应该显示变量name
的字符串值的第一个num
字符
有什么方法可以得到想要的结果吗?您可以在echo语句周围添加一层
%
,然后调用echo
它
@echo off
set num=3
set name=James
call echo %%name:~0,%num%%%
或者您可以简单地启用DelayedExpansion
@echo off
setlocal enabledelayedexpansion
set num=3
set name=James
echo !name:~0,%num%!
有关
delayedexpansion
的更多帮助,只需从cmdline运行setlocal/?
。了解call echo%%name:~0,%num%%%
查看发布在上的所有答案查看此答案:。