我想要的是:
给定一个名称数组,例如dependency1、dependency2、..、dependencyN:
将“_DEP_DIR”附加到每个名称,以形成例如dependency1_DEP_DIR、..、dependencyN_DEP_DIR。(XXX_DEP_DIR 预定义为一个变量,指向每个依赖项的本地磁盘路径。)
调用每个依赖项的特定批处理文件(setup.bat)。
我尝试的是:
DEP_NAMES=dependency1 dependency2 dependency3 dependency4 dependency5 dependency6
DEP_DIRS=$(foreach name,$(DEP_NAMES),$(name)_DEP_DIR)
for dependency in $(DEP_DIRS); do \
ECHO Copy $$dependency ; \
ECHO $($$dependency)/installers/windows ; \
"$($$dependency)/installers/windows/setup.bat" ; \
done
问题
第一个回显可以成功显示附加名称,例如“ dependency1_DEP_DIR
”。但是,$($$dependency)
没有按预期工作,“ /installers/windows
”被打印出来,更不用说对批处理文件的以下调用。
故障排除
我想问题是我的循环计数器($$dependency
)的值恰好是我需要使用的变量的名称($(..)
)。并且 form( $($$dependency)
) 不正确(甚至不支持?)
有人知道吗?
另外,如果你们能想出其他方法来满足我绕过这个问题的要求,很高兴知道;)