
# 提示重复的参数时如何处理？
#### **问题背景**
KooCLI在命令执行过程中会对参数的合法性进行检查，若命令中存在重复参数，视具体场景不同，会提示不同错误，例如：
1. \[USE_ERROR\]重复的参数:\*
2. \[USE_ERROR\]重复的参数\*,如非误输,请以cli-\*为key输入其中的KooCLI系统参数
3. \[USE_ERROR\]重复的\*,如非误输,请将其中的API参数通过'--cli-jsonInput=xx'传入,详情参考...
在KooCLI系统参数列表中，部分参数同时存在两种形式，如"--cli-region"和"--region"。之所以同一系统参数同时支持两种参数名，是因为在KooCLI上开放的云服务中，存在部分API的某参数与系统参数重名的情况。
#### **解决方案**
1. 若提示的错误信息为上述第一种，则命令中可能存在重复的非系统参数，请您检查是否误输。此错误也可能与系统解析处理命令内容有关，若参数值有特殊符号，请使用双引号引起，避免解析错误。
2. 若提示的错误信息为上述第二种，说明命令中存在重复的[旧系统参数](https://support.huaweicloud.com/hcli_faq/hcli_19_003.html#hcli_19_003__table4940171011536)，您可使用"hcloud \<service\> \<operation\> --help"命令，对比输出结果中"Params"的内容，即当前API的参数列表，确认目标API中是否存在该参数，或存在可自定义参数名称的参数（即名称为"{\*}"的参数）。若不存在，请您检查是否误输。若存在，则您可能需要将同名的两个参数用于不同用途，即：其一作为目标API参数，另一作为系统参数。您可根据提示信息，使用[新系统参数](https://support.huaweicloud.com/hcli_faq/hcli_19_001.html#hcli_19_001__table84461047193613)替换原命令中的旧系统参数。当命令中同时存在同一系统参数的新旧两种形式时，例如命令中存在"--cli-region=${regionValue1} --region=${regionValue2}"，KooCLI会根据当前API的参数列表自动识别各个参数的用途：
   - 若目标API中存在"region"同名参数，或可自定义参数名称，KooCLI会在命令执行过程中自动将"--cli-region"识别为系统参数，其值用于获取目标API的详情信息；而将"--region"识别为目标API的参数，其值将用于目标API的调用。
   
   - 若目标API中不存在"region"同名参数，也不可自定义参数名称，KooCLI会在命令执行过程中自动将"--cli-region"识别为系统参数，其值用于获取目标API的详情信息，同时会忽略命令中传入的"--region"参数。
   
   
   当您构建KooCLI命令时，对于其中的系统参数，为避免出现参数冲突而引起错误或交互**，推荐使用** **新系统参数**。
   
3. 若提示的错误信息为上述第三种，说明命令中存在重复的新系统参数，您可使用"hcloud \<service\> \<operation\> --help"命令，对比输出结果中"Params"的内容，即当前API的参数列表，确认目标API中是否存在该参数，或存在可自定义参数名称的参数（即名称为"{\*}"的参数）。若不存在，请您检查是否误输。若存在（此种冲突的情况出现的概率极小），请您将命令中的API参数写入cli-jsonInput文件中，[以JSON文件的方式传递API参数](https://support.huaweicloud.com/usermanual-hcli/hcli_05_12.html)。
 
