acc.txt
파일에 로그를 쓰는 프로세스가 있으며 특정 문자열이 해당 .txt
파일에서 발견되면 프로세스를 다시 시작하려고합니다. 문자열이 발견되어 내가 찾고있는 문자열과 일치하면 acc.txt
내용을 지우고 프로세스를 종료해야합니다.문자열이 텍스트 파일에있는 경우 프로세스를 종료하는 일괄 처리 스크립트
업데이트 : 오류가 수정되었습니다. 아래 해결 방법을 참조하십시오.
acc.txt
파일에 로그를 쓰는 프로세스가 있으며 특정 문자열이 해당 .txt
파일에서 발견되면 프로세스를 다시 시작하려고합니다. 문자열이 발견되어 내가 찾고있는 문자열과 일치하면 acc.txt
내용을 지우고 프로세스를 종료해야합니다.문자열이 텍스트 파일에있는 경우 프로세스를 종료하는 일괄 처리 스크립트
업데이트 : 오류가 수정되었습니다. 아래 해결 방법을 참조하십시오.
당신은 예를 들어, findstr
및 taskkill
명령을 사용할 수 있습니다
@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
Error8902 텍스트가 acc.txt 파일 내부에 존재하지만 '문자열을 찾을 수 없습니다.'라는 메시지 만 표시됩니다. – Chris
나는 다음으로 대체 : find "Error8902"acc.txt> nul 2> & 1 && goto : stringFound 그리고 지금은 작동하는 것처럼 보입니다. 문제는 acc.txt 내용이 손상되지 않고 삭제되지 않는다는 것입니다. 동시에 배치 스크립트를 관리자로 실행하면 문자열이 없습니다. – Chris
@Chris, 배치 파일을 관리자로 실행하면 작업 디렉토리가 System32 디렉토리로 설정되기 때문입니다. – Squashman
이 질문하지만, 작업 요청하지 않습니다. 시도한 코드를 제공하고 문제가 무엇인지 설명하십시오. 이 도움말 항목을 참조하십시오 : [ask]! – aschipfl