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.