2017-01-25 2 views
0

Ich habe dieses Skript (minus alle meine ECHO für Ihre Lesbarkeit) gemacht, um bestimmte Benutzerordner auf einem externen Gerät zu sichern. Es funktioniert einwandfrei, aber ich frage mich, ob jemand irgendwelche Ideen hat, wie ich es vereinfachen könnte (z. B. "cleverer").Batch-Backup-Skript vereinfachen

Ich bin neu auf dieser Website und Codierung. Bitte bei mir tragen!

Alle Hilfe wird geschätzt.

@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 

Mit freundlichen Grüßen.

+1

erstellen Sie sollten höchstwahrscheinlich verschieben über [CodeReview.SE] (obwohl ich nicht sicher bin, ob sie auch über die Menge sprechen ...). Solange Ihr Code funktioniert, ist er nicht korrekt auf SO platziert. – geisterfurz007

+1

Dieser Beitrag passt besser auf [CodeReview] (http://codereview.stackexchange.com). – aschipfl

Antwort

0

Wenn möglich, nicht wiederholen sich

: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  

Anmerkung: die mkdir hat als robocopy Befehl unterdrückt wurde den Zielordner

+0

Vielen Dank, eine Schleife wie diese war genau das, wonach ich suchte! –