将变量与批处理脚本中的数组中的值进行比较

时间:2017-06-19 01:59:04

标签: batch-file scripting

我已经设置了这样的数组:

SET ORG[0]=Microsoft
SET ORG[1]=Google
SET ORG[2]=Yahoo
SET ORG[3]=Snapchat
SET ORG[4]=Whatsapp
SET ORG[5]=Facebook

然后我在其中一个文件中查找以获取存储在文件中的值:

For /F Tokens^=10^ Delims^=^" %%A in ('Find /I "%Client%"^<"C:\Env\Test\test.xml"') Do Echo "%%A" & SET "ORG=%%A"

其中ORG可以是上述任何数组值,具体取决于文件中存储的内容。例如,对于此实例说:

ECHO %ORG% gives Google.

我想将从文件中获取的%ORG%值与设置的数组值进行比较,如果它等于,那么我希望我的批处理脚本能够:

GOTO :Action Else 
ECHO "Client Name Not Found"

我不确定如何将变量与数组中的值进行比较?

1 个答案:

答案 0 :(得分:2)

for /f "tokens=1*delims==" %%a in ('set ORG[ 2^>nul ') do if "%%b"=="%ORG" goto action

echo Client not found.

set命令列出以[{1}}格式ORG[ org[3]=Snapchat格式delims开始=的现有变量,仅将ORG[3]分配给{ {1}}和%%aSnapchat

如果找到这样的匹配,则客户端在列表中有效。如果%%b耗尽所有条目,则处理只会进入文件中的下一条指令。

要使比较不区分大小写,请使用for代替if /i