2017-02-23 8 views
-1

acc.txt 파일에 로그를 쓰는 프로세스가 있으며 특정 문자열이 해당 .txt 파일에서 발견되면 프로세스를 다시 시작하려고합니다. 문자열이 발견되어 내가 찾고있는 문자열과 일치하면 acc.txt 내용을 지우고 프로세스를 종료해야합니다.문자열이 텍스트 파일에있는 경우 프로세스를 종료하는 일괄 처리 스크립트

업데이트 : 오류가 수정되었습니다. 아래 해결 방법을 참조하십시오.

+2

이 질문하지만, 작업 요청하지 않습니다. 시도한 코드를 제공하고 문제가 무엇인지 설명하십시오. 이 도움말 항목을 참조하십시오 : [ask]! – aschipfl

답변

0

당신은 예를 들어, findstrtaskkill 명령을 사용할 수 있습니다

@echo off 
pushd %~dp0 

:loop 
    find "Error8902" acc.txt >nul 2>&1 && goto :stringFound 
    echo String not found 
    timeout /nobreak 1 >nul  & :: Interval between scanning 
goto :loop 


:stringFound 
    echo String found, killing process 
    taskkill /f /t /im process.exe 
    del /F acc.txt 
    pause 
+0

Error8902 텍스트가 acc.txt 파일 내부에 존재하지만 '문자열을 찾을 수 없습니다.'라는 메시지 만 표시됩니다. – Chris

+0

나는 다음으로 대체 : find "Error8902"acc.txt> nul 2> & 1 && goto : stringFound 그리고 지금은 작동하는 것처럼 보입니다. 문제는 acc.txt 내용이 손상되지 않고 삭제되지 않는다는 것입니다. 동시에 배치 스크립트를 관리자로 실행하면 문자열이 없습니다. – Chris

+0

@Chris, 배치 파일을 관리자로 실행하면 작업 디렉토리가 System32 디렉토리로 설정되기 때문입니다. – Squashman