2011-04-22 7 views
0

특정 폴더의 파일을 삭제하기 위해 자동 실행 배치 파일을 만드는 방법은 무엇입니까? 시나리오 : 스캐닝 된 모든 문서가 스캔 된 서버에 폴더가 있습니다. 그들은 스캔 한 문서가 1 일 후에 삭제되기를 원합니다. 매일 배치 파일을 만들 수 있습니까?자체 삭제 파일 실행

답변

3

내장 된 task scheduler을 사용할 수 있습니다.이 파일은 배치 파일이라고 부를 수 있습니다.

(배치 파일을 언급 했으므로 Windows라고 가정합니다).

+0

예. 죄송합니다. 창입니다. – Daniel

0

이것은 꽤 잘 알려진 방법으로, 얼마 전 MSDN에서 문서화되었습니다. 이 기술은 Windows 95 및 Windows NT에서 작동합니다. MS-DOS 배치 파일 자체를 삭제할 수 있기 때문에 작동합니다. 실행할 때

del %0.bat 

배치 파일, 오류 "배치 파일을 찾을 수 없습니다"자체 문제를 삭제 :이 기술을 테스트하려면 하나의 명령을 포함하는 작은 배치 파일을 만듭니다. 이 오류는 단순한 메시지 일 뿐이므로 안전하게 무시할 수 있습니다. 그 자체로는 너무 유용하지는 않지만, 우리 실행 파일을 삭제하도록 수정 될 때, 다소 힘센 방식으로 문제를 해결합니다.

:Repeat 
del "C:\MYDIR\MYPROG.EXE" 
if exist "MYPROG.EXE" goto Repeat 
rmdir "C:\MYDIR" 
del "\DelUS.bat" 

이 배치 파일을 반복적으로 지정된 파일을 삭제 시도하고 성공할 때까지 CPU를 소모 지속적으로 실행됩니다 : 다음과 같은 내용으로 : 우리의 실행 파일 (\ DelUs.bat C라고도 함) 배치 파일을 만듭니다. 실행 파일이 삭제되면 배치 파일이 삭제됩니다.

실행 파일은 CreateProcess를 사용하여 배치 파일을 생성해야하며 즉시 종료해야합니다. 배치 파일의 실행 스레드에 낮은 우선 순위를 부여하여 원래 실행 파일이 종료 될 때까지 많은 실행 시간을 얻지 않는 것이 좋습니다.

이 기술의 전체 코드가 포함 된 전체 문서 http://www.catch22.net/tuts/self-deleting-executables을 읽으십시오.