Batch file 如何检查批处理中是否存在多个变量(从VAR1到VAR10)

Batch file 如何检查批处理中是否存在多个变量(从VAR1到VAR10),batch-file,for-loop,batch-processing,Batch File,For Loop,Batch Processing,如果VAR1到VAR10不等于“”,我正在尝试签入.bat。如果是这样的话,我想重复一下变量的内容,就像下面不起作用的例子一样 FOR /L %%G IN (1,1,10) DO ( IF "%SYSTEM%%%G" NEQ "" ( echo %SYSTEM%%%G% ) ) 我尝试了几个小时,也许有人给我一个提示。如果定义了,最好使用,并延迟扩展以获得值: @echo off set sys

如果VAR1到VAR10不等于“”,我正在尝试签入.bat。如果是这样的话,我想重复一下变量的内容,就像下面不起作用的例子一样

FOR /L %%G IN (1,1,10) DO (
        IF "%SYSTEM%%%G" NEQ "" (
                echo %SYSTEM%%%G%
                ) 
        )

我尝试了几个小时,也许有人给我一个提示。

如果定义了
,最好使用
,并延迟扩展以获得值:

@echo off

set system1=1
set system5=9
set system10=5

setlocal enableDelayedExpansion
for /l %%# in (1,1,10) do (
    if defined system%%# (
        echo system%%# dedfined : !system%%#!
    )
)
您应该使用

@echo off
set Var1=
set Var2=
set Var3=3
set Var4=4
set Var5=5
set Var6=
set Var7=
set Var8=8
set Var9=9
set Var10=10
setlocal enableDelayedExpansion
FOR /L %%G IN (1,1,10) DO (
        if defined Var%%G (
            echo  Var%%G=!Var%%G!
            ) 
        )
endlocal
pause
见: