se a variável num = 1, o resultado ainda é verdadeiro, pois o arquivo contém 11
Eu expliquei como fazer isso em minha resposta para sua pergunta anterior :
the leading (space) and trailing , (comma) are important as this prevents 1 matching 11 (for example)
Neste caso em particular, você não tem espaço de liderança, então você precisa usar:
findstr /c:",%num%," check
Nota:
- Isso corresponderá a
,1,e não,11, - Você não precisa de um
"(citação) antes do nome do arquivo.
Uma solução muito mais simples é usar um canal ( | ), como também recomendei na minha resposta anterior:
findstr /c:"%user%" "ACL.csv" | findstr /c:",%num%," >nul 2>&1
IF NOT ERRORLEVEL 1 (
echo AUTHORIZED
) else (
echo UNAUTHORIZED
)
Então você não precisa do arquivo temporário check .
- Um índice A-Z da linha de comando do Windows CMD
- Uma lista categorizada de comandos do Windows CMD
- redirecionamento - Operadores de redirecionamento.