bigmail파일 다운로드 받을 때 사람 많아 나오는 메시지...
프로그래밍 잘하시는 분은 문제 없겠지만, 나처럼 잘 모르는 사람은...
아래 내용의 배치파일 만듦. (예: run.bat)
:Loop
ping -n 15 127.0.0.1
wget http://bigmail....
goto Loop
2번째 줄의 청색으로 된 숫자로 잠시 대기하는 시간을 정해줌
15초마다 대기하면서 다운로드를 시도하는 구조.
적색 부분에 bigmail 주소 입력해둠.
wget은 아래 사이트에서 받을 수 있음. wget.exe과 run.bat는 같은 디렉터리에 있어야함.
http://users.ugent.be/~bpuype/wget/
단일 파일로 wget.exe이고 현재 버전 1.11.4, 크기는 401408byte
장점 : 시간이 걸리긴 하지만 다운로드 횟수가 남아있다면 왠만하면 받게됨.
단점 :
- 다운로드 완료 후,
배치파일을 종료하는 코드가 없어 재 다운로드 하게되는 문제가 있음.
사람이 워낙 많으면 재다운로드 하는 경우는 거의 없지만,
다른 이에게 폐가 될 수 있을 것 같음..
- 다운로드한 파일 명을 수동으로 바꿔줘야함.
위의 문제를 조금이라도 해결하고 싶어서...
VBScript 코드를 작성해봤다. 엉터리이긴 하지만...
Dim WshShell, objFSO, objFile, objRandom Dim Str, Addr, strFile Str = "wget.exe" Addr = InputBox("Daum bigmail 주소 입력") If Addr = "" Then WScript.Quit() '취소 버튼누르면 스크립트 종료 End If Addr = replace(Addr," ","") '불필요한 공백이 주소에 있다면 제거. strFile = "bigfile_down@uid=" & Mid(Addr, 56) 'wget에 의해 생성되는 파일명. Set objRandom = CreateObject("System.Random") Set objFSO = CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(strFile) Then WScript.Echo("파일이 이미 존재합니다.") WScript.Quit() '파일 존재하면 스크립트 종료 End If Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run Str & " " & Addr, 0, true '다운로드 명령실행 Set objFile = objFSO.GetFile(strFile) 'While CLng(objFile.Size) < 1000 While Len(objFile.Size) < 4 '999byte 이하 크기라면 재 다운로드 objFile.Delete '이전에 다운로드 실패한 파일 삭제 'WScript.Sleep 15000 '15초간 대기 WScript.Sleep objRandom.Next_2(1000, 30000) '1~30초 사이의 난수 입력되도록 변경 WshShell.Run Str & " " & Addr, 0, true '다운로드 명령실행 'Set objFile = objFSO.GetFile(strFile) Wend WScript.Echo("다운로드 완료됨.")
일단 재 다운로드 되는 걱정은 안해도 될 것 같다.
실행 중 종료하는 부분을 생각하지 않아서
종료하려면 작업관리자에서 wscript.exe 프로세스를 강제종료 해줘야하는 문제가 있다.
댓글 없음:
댓글 쓰기