Windows Batch使用findstr循环所有变量

时间:2012-08-27 11:58:39

标签: variables batch-file findstr

在我的Windows批处理文件中,我有各种各样的变量。可以说我有以下变量:

set varTest1=test1
set varTest2=test2
set otherVar=variable500
set varS=string
set yetAnotherVar=foo

他们确实没有任何意义,但这不是重点。我正在寻找一种方法,打印出以var开头的所有变量值: 因此,当我使用某个帮助参数运行我的批处理时,它应该打印出以var开头的所有三个变量及其值。 输出可能如下所示:

These are the available variables:
varTest1 : test1
varTest2 : test2
varS : string

我创建了以下内容来读取参数:

IF "%1" == "" ( 
echo No help parameter was set. Program will exit. ) ELSE ( 
IF "%1" == "help" ( 
call :showAllAvailableVars ) ELSE (
echo Do something else))

现在我有我的方法

:showAllAvailableVars

我认为解决方案可能是findstr方法,但我无法弄清楚如何做到这一点,因为findstr主要用于文件,而不是用于搜索自己的程序变量。

2 个答案:

答案 0 :(得分:2)

创建数组而不是不同的变量。像,

set var[0]=test1

set var[1]=test2

set var[2]=string

然后在你的'showAllAvailableVars'函数中执行此操作

for /L %%i in (1,1,%n%) do echo !var[%%i]!

答案 1 :(得分:0)

您可以使用set var打印以var开头的所有变量 另请参阅set /?