在Windows批处理文件中使用SET上的变量

时间:2017-12-29 16:35:08

标签: batch-file

我在这里尝试使用变量而不是固定数字:

set PACK_VERSION=Testing12345
set PACK_VERSION=%PACK_VERSION:~7,100%
echo %PACK_VERSION%

而不是这个数字7,我想使用一个变量,如下所示:

set VARNUM=7
set PACK_VERSION=Testing12345
set PACK_VERSION=%PACK_VERSION:~%VARNUM%,100%
echo %PACK_VERSION%

我不知道如何正确插入,任何人都可以提供帮助?谢谢!

1 个答案:

答案 0 :(得分:2)

“通常”的方式是使用delayed expansion

setlocal enabledelayedexpansion
set VARNUM=7
set PACK_VERSION=Testing12345
set PACK_VERSION=!PACK_VERSION:~%VARNUM%!
echo %PACK_VERSION%

但是在没有延迟扩展的情况下还有一个小技巧(你需要解析两次,call这是一个很好的方法):

set VARNUM=7
set PACK_VERSION=Testing12345
call set PACK_VERSION=%%PACK_VERSION:~%VARNUM%%%
echo %PACK_VERSION%