子串选择中的嵌套变量

时间:2014-12-12 10:45:25

标签: batch-file

我很难动态地完成这个“子串” - 选择:

set input=%input:~4%

我想要像

这样的东西
set input=%%input:~%length% %%

但我所有尝试的双倍%%和!还有更多人失败了。希望你能告诉我,这样的嵌套变量如何在windows批处理文件中起作用。

非常感谢,

最好的问候,

马库斯

1 个答案:

答案 0 :(得分:3)

许多可能的方式

这使用CALL第二次启动批处理解析器的事实

set length=4
call set input=%%input:~%length%%%

延迟扩展是最稳定,最安全的解决方案

setlocal EnableDelayedExpansion
set length=4
set input=!input:~%length%!

有时使用FOR参数

甚至有用
setlocal EnableDelayedExpansion
set length=4
for /F %%n in ("!length!") do (        
    set input=!input:~%%~n!
)