问题描述
我创建了一个名为 ProcessingScript
的变量,其值如下
#{each SiteKey in BatchProcessing.SiteKeys}
ftp://#{BatchProcessing.FtpUser[#{Octopus.Template.Each.Index}]}@
{/each}
这个想法是我遍历我的数组 SiteKeys
,它看起来像这样 SiteKeys ['customer1-a' customer1-b']
和我的 FtpUsers 看起来像这样 ['usera','userb']
但是当我预览它打印的变量时
#{BatchProcessing.FtpUser[#{Octopus.Template.Each.Index}]}customer1-a
#{BatchProcessing.FtpUser[#{Octopus.Template.Each.Index}]}customer1-b
完全忽略索引
解决方法
我认为您不能通过索引引用列表变量。
你可以试试这些变量:
BatchProcessing.SiteKeys = "customer1-a,customer1-b"
BatchProcessing.FtpUser[customer-a] = "usera"
BatchProcessing.FtpUser[customer-b] = "userb"
还有这个模板:
#{each SiteKey in BatchProcessing.SiteKeys}
ftp://#{BatchProcessing.FtpUser[#{SiteKey}]}@#{SiteKey}
{/each}
我认为如果您仅将 SiteKeys 变量用于循环,您也可以去掉它。
BatchProcessing[customer-a].FtpUser = "usera"
BatchProcessing[customer-b].FtpUser = "userb"
#{each site in BatchProcessing}
ftp://#{site.FtpUser}@#{site}
{/each}