使用批处理中的其他变量创建变量

时间:2018-05-20 19:23:55

标签: batch-file variables

我有一个名为v23的变量。我试着验证它是否与6相等:

set x=2 set y=3 if %v%x%%y%%==6 echo ok

但它没有用,所以我这样做了:

echo %v%x%%y%%

它回应:

  

X%Y%

如何使用x和y重新创建v23变量? (一个数组不适用于我的整个算法)

2 个答案:

答案 0 :(得分:0)

这是常见问题之一,如果不是最常被问到的问题。 使用delayed expansion

:: Q:\Test\2018\05\20\SO_50438603.cmd
@Echo off
SetLocal EnableDelayedExpansion
set x=2
set y=3
set v23=6
if !v%x%%y%!==6 echo v%x%%y% is !v%x%%y%!

示例输出:

> SO_50438603.cmd  
v23 is 6

答案 1 :(得分:0)

你没有具体说明这项任务,所以我认为我会提供一个不需要延迟扩展的选项:

Set "x=2"
Set "y=3"

Set /A #=(x * y) - v23
If %#% Equ 0 Echo OK

Pause