2017-01-25 5 views
0

특정 사용자 폴더를 외부 장치에 백업하기 위해이 스크립트 (사용자의 가독성을 위해 모든 ECHO 빼기)를 만들었습니다. 그것은 완벽하게 작동하지만 누군가가 내가 그것을 단순화 할 수있는 방법에 대한 아이디어가 있는지 궁금합니다 (예를 들어 더 '똑똑한').배치 백업 스크립트 단순화

이 사이트는 새로운 도구입니다. 나와 함께 견뎌주세요!

모두에게 감사드립니다.

@ECHO OFF 

SET driveLetter=%~d0 

:CHOOSE 

SET /P CHOOSE=Are you sure you want to continue [Y/N]? 

IF /I "%CHOOSE%" == "Y" GOTO :chooseYes 
IF /I "%CHOOSE%" == "N" GOTO :chooseNo 

GOTO :CHOOSE 

:chooseYes 

MKDIR %driveLetter%\Desktop 
MKDIR %driveLetter%\Documents 
MKDIR %driveLetter%\Favorites 
MKDIR %driveLetter%\Pictures 
MKDIR %driveLetter%\Downloads 

TIMEOUT /T 1 /NOBREAK >NUL 

ROBOCOPY %USERPROFILE%\Desktop\ %driveLetter%\Desktop /E /COPYALL /ZB /MT:20 /XJ /R:2 /W:5 
ROBOCOPY %USERPROFILE%\Documents\ %driveLetter%\Documents /E /COPYALL /ZB /MT:20 /XJ /R:2 /W:5 
ROBOCOPY %USERPROFILE%\Favorites\ %driveLetter%\Favorites /E /COPYALL /ZB /MT:20 /XJ /R:2 /W:5 
ROBOCOPY %USERPROFILE%\Pictures\ %driveLetter%\Pictures /E /COPYALL /ZB /MT:20 /XJ /R:2 /W:5 
ROBOCOPY %USERPROFILE%\Downloads\ %driveLetter%\Downloads /E /COPYALL /ZB /MT:20 /XJ /R:2 /W:5 

CLEANMGR /C: /SAGERUN:65535 /SETUP 

TIMEOUT /T 1 /NOBREAK >NUL 

DEFRAG /C /H /V /W 

PAUSE 

EXIT  

:chooseNo 

TIMEOUT /T 3 /NOBREAK >NUL 

감사합니다.

+1

당신은 가장 가능성까지 이동해야 할 대상 폴더를 생성합니다 robocopy 명령으로 supressed 된 [CodeReview.SE] (비록 그들이 일괄 처리에 대해 이야기하고 있는지 확실하지 않지만 ...). 코드가 작동하는 한, SO에 올바르게 배치되지 않습니다. – geisterfurz007

+1

이 게시물은 [CodeReview] (http://codereview.stackexchange.com)에 더 적합합니다. – aschipfl

답변

0

가능하면 자신에게

:chooseYes 

    for %%a in (Desktop Documents Favorites Pictured Downloads) do (
     robocopy "%userprofile%\%%a" "%driveLetter%\%%a" /E /COPYALL /ZB /MT:20 /XJ /R:2 /W:5 
    ) 

    CLEANMGR /C: /SAGERUN:65535 /SETUP 
    TIMEOUT /T 1 /NOBREAK >NUL 
    DEFRAG /C /H /V /W 
    PAUSE 
    EXIT  

메모를 반복하지 않는 다음 mkdir

+0

고마워, 이것과 같은 루프가 정확히 내가 찾고 있었던 것이었다! –