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