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

道特

我正在尝试在此处使用变量而不是固定数字:

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%

我不知道如何正确插入,有人可以帮忙吗?谢谢!

史蒂芬

“通常”的方式是使用延迟扩展

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%

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在批处理文件中定义和使用变量

从Windows批处理文件设置系统环境变量?

使用Ansible在Windows中运行批处理文件

Windows批处理文件可在html文件中查找变量字符串

在IF语句中设置变量(Windows批处理文件)

在Windows批处理文件中通过命令行ftp使用%USERNAME%环境变量

在批处理文件中的变量内部存储的路径上建立目录

在Windows命令行中更改时间变量的时间输出以在批处理文件中使用

如何使用PuTTY / Plink在Windows批处理文件中的设备上顺序执行多个命令?

在Windows脚本中杀死Windows上由批处理文件启动的外部进程

将Powershell变量传递到Windows批处理文件

批处理文件:变量在我调用它之前在set命令中解析

在批处理文件的文件路径中使用变量

批处理文件SET变量问题

批处理文件将“ =”替换为“?” 在文件或变量中

将变量传递给Windows FOR / DO批处理文件中的文件名

在Windows批处理文件中扩展变量

批处理文件以在Windows中运行其他批处理文件

如何在Windows上仅在批处理文件中设置PATH环境变量一次?

处理批处理文件中设置变量的最佳方法

在批处理文件中的文件路径中使用变量

Windows批处理文件目录作为变量

如何使用Windows批处理文件解析包含本地变量的文本文件中的字符串?

变量中的批处理文件值

使用powershell编辑Windows批处理文件中的文件

使用变量的批处理文件 FOR 循环

使用变量从批处理文件中调用 powershell 替换

批处理文件中的 Windows 上的诗歌

Set 未在批处理文件中设置环境变量