如何将一个变量设置为另一个变量的一部分

时间:2021-02-17 16:50:06

标签: batch-file

基本上我想知道你是否可以将一个变量设置为另一个变量的一半或一部分。

set /a var1=3000

set var1a=30
set var1b=00

不能简单地把它设置成两部分,因为用户可以随心所欲地增加或减少它。例如:

@echo off
set /a var1=800
:function
echo %var1%
echo [1] +120
echo [2] -55
choice /c 12 /n
if %errorlevel% == 1 (set /a var1=%var1%+120)
if %errorlevel% == 2 (set /a var1=%var1%-55)
goto function

所以我必须能够将变量设置为变量的一部分。

1 个答案:

答案 0 :(得分:1)

可以使用以下语法将变量设置为另一个变量的前导 n 个字符:

a[href]:not([href^="example.com"]

这将输出以下内容

SET VAR=VALUE
SET START=%VAR:~0,2%
SET END=%VAR:~2%
ECHO.%START%
ECHO.%END%

如果您的目标是使这些变量动态化,以便它们仍然是 VA LUE 的开头和结尾,即使稍后更改,这种方法也无法实现:

VAR

将产生:

SET VAR=VALUE
SET START=%VAR:~0,2%
SET END=%VAR:~2%

SET VAR=NEWVALUE
ECHO.%VAR%
ECHO.%START% ^!= %VAR:~0,2%
ECHO.%END% ^!= %VAR:~2%

然而,NEWVALUE VA != NE LUE != WVALUE 将始终包含 %VAR:~0,2% 的前两个字符,而 %VAR% 将始终在前两个字符之后包含 %VAR:~2% 的内容,因此它可能是可以在需要的地方直接使用它们。