2017-01-25 9 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

Вы должны, скорее всего, перейти на [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 было подавлено, как команда robocopy создаст целевую папку

+0

Большое спасибо, петля вроде этого была именно тем, что я искал! –

 Смежные вопросы

  • Нет связанных вопросов^_^