수상 한 파일 의 일괄 처 리 는 주체 부분 을 순환 적 으로 쓰 는 것 이 가장 좋다.

오늘 은 원래 저 장 된 것 이지 만 제대로 보지 못 한 강의 와 비판 처 리 를 한 두 편의 게시 물 을 찾 았 습 니 다.비록 비교적 굵 고 예 도 간단 하지만 작은 수확 이 있 습 니 다.계획 에서 의 심 스 러 운 파일 의 일괄 처 리 는 주체 부분 을 순환 적 으로 쓰 는 것 이 좋 습 니 다.비교적 많은 파일 경로 와 파일 이름 이 관련 되 어 있 기 때문에 BAT 를 직접 손 으로 쓰 는 것 은 너무 힘 들 기 때 문 입 니 다.한편,for 순환 은 어느 정도 수 요 를 만족 시 킬 수 있 기 때문에 for 순환 의 용법 에 중심 을 두 고 보 았 습 니 다.아직 잘 모 르 겠 지만 코드 를 몇 줄 써 보 았 습 니 다.효과 가 괜 찮 습 니 다.    실험 에서 4 개의 파일 이 언급 되 었 습 니 다:list.txt,pre.bat,check.bat,check.log.    우선,list.txt 가 있어 야 합 니 다.이 파일 은 모든 수상 한 파일 을 기록 하고 줄 마다 하나씩 씁 니 다.이것 은 손 으로 써 야 하지만 파일 경로 와 파일 이름 만 써 야 합 니 다.차 로 돌아 가 줄 을 바 꾸 고 다음 것 을 쓰 면 됩 니 다.작업량 이 많 고 크 지 않 으 며 작 아 도 작 지 않 습 니 다.예 를 들 어:...%systemroot%\explorer.exe%systemroot%\\system 32\\rundll32.exe...    둘째,pre.bat,이것 은 사전 처리 입 니 다.check.bat 라 는 일괄 처 리 를 생 성 하 는 데 사 용 됩 니 다.이 중 for 순환 을 사용 하여 list.txt 에서 줄 별로 파일 이름 을 읽 고 변 수 를 교체 한 후 check.bat 에 기록 합 니 다.이 중에서 가장 많이 사용 하 는 것 은 echo 이다.출력 재 설정 을 포함 하 는 작업(for 순환 포함)에 서 는 check.bat 를 기록 하 는 내용 에 check.log 를 기록 하 는 작업 이 포함 되 어 있 기 때문에 두 개의 따옴표 를 사용 하여 출력 재 설정 작업 을 차단 합 니 다.여기에 문제 가 있 습 니 다.check.bat 에 기 록 된 명령 은 두 개의 따옴표 가 있 었 고'명령'의 역할 을 잃 어'문자열'이 되 었 기 때문에 check.bat 를 생 성 한 후에 그 중의 모든 작은 따옴표 를 수 동 으로 삭제 해 야 합 니 다.이것 은 일괄 처리 로 이 루어 질 수 있 을 지 모 르 겠 지만,나 는 현재 어떤 방법 도 찾 지 못 했다.pre.bat 의 내용 은 다음 과 같 습 니 다:@echo off echo @echo off>> check.bat echo echo BATCH STARTS...>> check.bat echo echo PRESS ANY KEY TO START THE BATCH...>> check.bat echo pause>> check.bat echo "date /t>> check.log">> check.bat echo "time /t>> check.log">> check.bat echo "echo -------START------>> check.log">> check.bat:이상 은 check.bat 에 알림 문자 와 명령 을 기록 합 니 다.for /F %%i in (list.txt) do echo "if exist %%i echo %%i & echo %%i>> check.log">> check.bat:FOR 순환,list.txt 에서 파일 이름 을 읽 습 니 다.:IF 는 파일 이 존재 하면 파일 이름 을 표시 하고 check.log 에 기록 합 니 다.echo "echo -------END------>> check.log">>check.bat echo echo BATCH ENDS!>> check.bat echo echo PRESS ANY KEY TO EXIT...>> check.bat echo pause>> check.bat pause     셋째,check.bat.이것 은 의 심 스 러 운 파일 을 검사 하 는 데 사용 되 는 것 이자 4 개의 파일 중 가장 긴 것 입 니 다.pre.bat 에서 생 성 된 후에 그 중의 모든 작은 따옴표(수첩 의 교체 기능 을 사 용 했 습 니 다.사실 편리 하고 작업량 이 전혀 없습니다)를 수 동 으로 삭 제 했 습 니 다.실행 시 수상 한 파일 이 있 으 면 기록 파일 check.log 에 표시 하고 기록 합 니 다.이 파일 의 내용 은 다음 과 같 습 니 다:@echo off echo BATCH STARTS... echo PRESS ANY KEY TO START THE BATCH... pause date /t>> check.log time /t>> check.log echo -------START------>> check.log …… if exist %systemroot%\explorer.exe echo %systemroot%\explorer.exe & echo %systemroot%\explorer.exe>> check.log if exist %systemroot%\system32\rundll32.exe echo %systemroot%\system32\rundll32.exe & echo %systemroot%\system32\rundll32.exe>> check.log …… echo -------END------>> check.log echo BATCH ENDS! echo PRESS ANY KEY TO EXIT... pause     넷 째,파일 check.log 를 기록 하고 check.bat 에서 생 성 되 며 검사 결 과 를 기록 합 니 다.C:\WINDOWS\\explorer.exe C:\WINDOWS\\system 32\rundll 32.exe.    지금 남 은 문 제 는 list.txt 를 쓰 는 것 입 니 다.구체 적 으로 얼마나 많은 통계 가 없 는 지 는 알 수 있 습 니 다.하지만 하루 에 다 쓸 수 있 을 것 입 니 다.내일 왕 사장 이 계산 을 하고 회사 에 찾 아 올 것 입 니 다.다른 특별한 상황 이 없 으 면 내일 다 쓸 수 있 습 니 다.하마터면 1.0 판 을 동료 와 곽 에 게 보 낼 수 있 을 뻔 했 습 니 다.

좋은 웹페이지 즐겨찾기