0

在我的 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主要用于文件而不是搜索自己的程序变量。

4

2 回答 2

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]!

于 2012-08-27T12:44:43.250 回答
0

您可以使用set var打印所有以var.
也可以看看set /?

于 2012-08-27T12:53:53.840 回答