[출처:http://autohotkey.co.kr/b/1-460]
setformat, float, 3.2
fileselectfolder, drive, ,0,백업할 폴더를 선택하세요^^
stringlen, len, drive ;뒤에 루프에서 하위 폴더명을 획득하기 위함
include=1 ;하위 폴더의 포함 여부를 선택하려면 위의 구문을 사용
filecreatedir,backup ;백업 폴더를 변경할 수 있도록 하려면 위 구문을 사용
newfolder=backup
;파일 갯수와 용량 겟
size=0
loop, %drive%*.*, 0, 0 ;기본폴더
{
count++
size:=size+A_loopfilesizeKB
}
if include=1
{
loop, %drive%*.*, 2, 1 ;폴더검색
{
stringtrimleft, taskfolder, A_loopfilefullpath, %len%
loop, %drive%%taskfolder%*.*, 0, 0
{
count++
size:=size+A_loopfilesizeKB
}
}
}
total=%count% ;전체 파일 수
;파일 갯수를 토대로 퍼센트로 구현합니다.
;용량으로 정확한 퍼센트를 구하려고 했는데 안되네요^^
;용량부분은 삭제하지 않고 남겨두었으니..보완에 도전해 보실 분?ㅎ
loop, %drive%*.*, 0, 0 ;기본 폴더 복사
{
settimer,timer,1000 ;얘는..traytip으로 얼만큼 복사되었는지 보여주라고 만들었습니다^^
filecopy, %A_loopfilefullpath%, %newfolder%\%A_loopfilename%, 0
size:=size-A_loopfilesizeKB
count--
}
/*
이부분 막막했는데 의외로 쉽게 풀렸는데요...최대한 쉽게 설명해볼께요^^
한 줄 요약으로
폴더를 검색해서 풀패스에서 작업할 폴더명만 빼온 뒤에,
그 폴더를 백업 폴더에 만들고 파일을 옮깁니다.
이 작업을 루프문으로 반복하죠^^
*/
if include=1 ;하위폴더를 백업하기로 선택한 경우
{
loop, %drive%*.*, 2, 1 ;폴더검색
{
stringtrimleft, taskfolder, A_loopfilefullpath, %len% ;작업할 폴더명만 남습니다.
filecreatedir, %A_workingdir%\%newfolder%\%taskfolder% ;백업 폴더에 같은 폴더 생성
loop, %drive%%taskfolder%*.*, 0, 0 ;원본 데이터들을
{
filecopy, %A_loopfilefullpath%, %newfolder%\%taskfolder%, 0 ;백업해라..는 얘깁니다..
count--
per:=(1-count/total)*100
}
}
}
sleep,1000
settimer,timer,off
msgbox, 백업 완료!
timer:
if (temp=0)
traytip, %per%`%, 파일 백업 중...
else if (temp=1)
traytip, %per%`%, 파일 백업 중.
else if (temp=2)
traytip, %per%`%, 파일 백업 중..
temp++
if temp>2
temp=0
return