使用FOR / F在文本文件中搜索变量

时间:2014-03-21 17:37:27

标签: batch-file for-loop

我试图在脚本的开头添加一个小支票。它涉及使用户输入的变量%S%与存储在文本文件中的列表进行核对。任何人都可以建议为什么下面的代码不起作用以及格式化文本文件的最佳方法?

目前你输入的任何东西都没有破坏,如果它的'在列表上与否。 该列表目前的格式为逗号分隔值,例如[60001,60002,60003,60004,60005]

@echo off

SET STORES=c:\Stores.txt
SET /P S=What is the code [60***]?
FOR /F "tokens=1,2 delims=," %%S IN (%STORES%) DO GOTO FIND

ECHO BROKE

:FIND
ECHO NOT BROKE

PAUSE

1 个答案:

答案 0 :(得分:0)

首先我认为你应该避免使用%S%和%% S,因为那令人困惑。 接下来,如果可以,我建议您更改Stores.txt的格式。每行放一个数字。像这样,你也可以摆脱delims=选项。

60001
60002
60003
60004
60005

然后,引入IF语句来检查用户对文件内容的输入。最后,我认为您需要在文件中使用GOTO END语句来执行您期望的操作。这是完整的文件:

@echo off

SET STORES=Stores.txt
SET /P USERINPUT=What is the code [60***]?
FOR /F "delims=," %%P IN (%STORES%) DO IF "%USERINPUT%"=="%%P" GOTO FIND

ECHO BROKE
GOTO END

:FIND
ECHO NOT BROKE

:END
PAUSE