2014-05-23 10 views
0

을 포함하지 않는 경우FINDSTR STR 내가 배치 파일에 새로운 오전 FINDSTR에 대한 몇 가지 게시물을 보았다 그러나 IP 주소가 포함 된 문자열 안에 169를 찾을 수 없었다 169

set Foo=169.254.100.1 
    SET Foo|findstr /i 169 
    if ERRORLEVEL 1 (echo it doesnt contain 169, do launch) else (echo it contains 169, don't do launch) 
당신이 볼 수있는

)

푸 169를 포함,하지만 난 FINDSTR을 수행 할 때, 그것은 "그것은 수행 출시를 169를 포함 나던"

아무도 여기에 어떤 문제가 있는지 알 수 있었다 (1) 반환 및 표시?

+0

나는 그것이 당신을 위해 어떻게 작동하지 않는지도 모른다. 게시 한 코드가 저에게 효과적입니다. '/ i' 스위치는 필요하지 않지만 아무런 해가 없습니다. – dbenham

+0

'set foo | findstr 169' 대신'echo % foo % | findstr 169'을 사용할 것을 제안 할 수 있습니까? 'foobar '와 같이'foo'로 시작하는 또 다른 변수가있을 수 있으며 잘못된 positives를 얻을 수 있습니다. Asides this, 당신의 코드는 나를 위해 잘 작동합니다. – Stephan

+0

또 다른 것은 그렇지 않으면'10.11.12.169'이 (하지, 당신이 원하는, 내가 생각하는) 너무 긍정적 인 것,'findstr' (문자열의 시작 부분에서 검색)와'/ B'를 사용 – Stephan

답변

1

나는 하지 사용 FINDSTR 않는이 테스트를 달성하기위한 또 다른 방법을 제시 할 수 있습니까?

set Foo=169.254.100.1 
if "%Foo:169=%" equ "%Foo%" (
    echo it doesnt contain 169, do launch 
) else (
    echo it contains 169, don't do launch 
) 
+0

이 응답 해 주셔서 감사합니다. 그것은 나를 위해 일하는 것 같다. 내 컴퓨터에서 우리가 쓸 필요가있는 것을 몇 가지 이유로 깨달은 유일한 것! 대신에 %. 그것들을 대체 한 후에 나는 적절한 행동을 취합니다. – Denis