在一般情形下,可以walkaround实现map的键值查找。
但是如何在for循环中实现类似的查找呢?例如当前给出的不是一个键,而是一组键,然后要将它们所对应的值串起来后用。
如上尝试,结果不正确,应该是由于变量延迟扩展所引起的,导致每个迭代下的&rem.都不能立刻摔倒,最后list只能获取到第一个匹配值。
希望大家多多指点,谢谢。
SET key=fri
set map=mon-Monday;tue-Tuesday;wed-Wednesday;thu-Thursday;fri-Friday;sat-Saturday;sun-Sunday
call set value=%%map:*%key%-=%%
set value=%value:;=&rem.%
echo.%value%
但是如何在for循环中实现类似的查找呢?例如当前给出的不是一个键,而是一组键,然后要将它们所对应的值串起来后用。
set "keys=fri mon"
set map=mon-Monday;tue-Tuesday;wed-Wednesday;thu-Thursday;fri-Friday;sat-Saturday;sun-Sunday
set "list="
for %%I in ("%keys: =" "") do (
set "key=%%~I"
call set value=%%map:*!key!-=%%
set value=!value:;=&rem.%
set "list=!list! !value!"
)
echo.%list%
如上尝试,结果不正确,应该是由于变量延迟扩展所引起的,导致每个迭代下的&rem.都不能立刻摔倒,最后list只能获取到第一个匹配值。
希望大家多多指点,谢谢。
