2017-01-25 8 views
0

私は、特定のユーザーフォルダを外部デバイスにバックアップするためにこのスクリプトを作成しました。それは完璧に働いていますが、誰かが私がそれをどのように単純化できるかについてのアイデアがあるかどうかは疑問です。バッチバックアップスクリプトの簡略化

私はこのサイトで初めて、作成しました。私と一緒にご負担ください!

すべてのお役に立ちました。

@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

ありがとう、このようなループはまさに私が探していたものでした! –