我正在为用户提供在命令行上选择某些属性的选项。用户想要选择逗号分隔的列表。所以用户会看到这样的东西
- 道具1
- 道具2
- 提案3
所以用户可以给出 1,3 并按回车键,用户将创建 1 和 3 个数据库。但是这些 Prop1、Prop2、Prop3 具有唯一的名称和 id,我在同一个批处理脚本中给出了属性,我想根据用户选择的选项连接所有这些并传递给我的构建脚本。
Example of properties:
SET propertyID1=11
SET propertyID2=12
SET propertyID3=13
SET propertyID4=14
SET propertyID5=15
SET propertyIDPref1=011
SET propertyIDPref2=012
SET propertyIDPref3=013
SET propertyIDPref4=014
SET propertyIDPref4=015
SET propertyName1=A
SET propertyName2=B
SET propertyName3=C
SET propertyName4=D
SET propertyName5=E
call :parse "%M%"
pause
goto :eof
:parse
setlocal
set list=%~1
for /F "tokens=1* delims=," %%f in ("%list%") do (
if not "%%f" == "" call :getLineNumber %%f
if not "%%g" == "" call :parse "%%g"
if "%%g" == "" call :printPropertiesConcatenation
)
endlocal
goto :eof
:printPropertiesConcatenation
setLocal
echo "Gr8 " %buildPropertiesList%
endLocal
goto :eof
:getLineNumber
setlocal
echo file name is %1
set propID = 'propertyID'%1%
set propStr=propertyID
set propID=%1
set newvar=!%propStr%%propID%!
echo %newvar%
set propNameStr=propertyName
set propName=!%propNameStr%%propID%!
echo %propName%
set propIDPrefix=propertyIDPref
set propIDPrefixWithPrefix=!%propIDPrefix%%propID%!
echo %propIDPrefixWithPrefix%
set buildPropertiesList=%buildPropertiesList%','!%propIDPrefix%%propID%!
goto :eof
我可以在迭代时从这些属性中读取正确的值,并在循环中使用 echo 查看它。但我想连接这些值并将其传递给构建脚本。但我无法在一个变量中查看所有连接值。
我想要这样的东西。最后设置 propNames = A,C 并设置 propIds = 11,13,这样我就可以传递 propNames 和 PropIds。
从上面的代码我希望 buildPropertiesList 有 011,013
有没有什么办法