2016-05-13 10 views
1

このスクリプトを使用して特定のフォルダ/ファイルをバックアップし、それらを圧縮してからzipをdiffフォルダに移動しようとしています。windows server 2008 r2 7zバックアップスクリプト

でもエラーが発生します。環境変数を設定する

  • :私は、スクリプトを実行したら

    @ECHO off 
    SETLOCAL 
    
    ECHO + Setting up environment variables. 
    SET BACKPATH=%ThisService_RootDirectory%temp\ 
    SET ARCPATH=C:\Program Files\7-Zip\7z.exe 
    SET ARCPARAMS=a -y 
    SET DAYSTOKEEP=3 
    SET ARCHIVE_DAYSTOKEEP=30 
    SET SOURCEPATH=%ThisService_RootDirectory%MPMissions 
    SET DEST_PATH=%ThisService_RootDirectory%Backups 
    SET BACKUP_DEST=%date:~-7,2%-%date:~4,2%-%date:~-4,4% 
    
    IF NOT EXIST "%BACKPATH%" (
    ECHO ! Backup Path not found, exiting. 
    GOTO END 
    ) ELSE (
    ECHO * Backup Path Found. 
    ) 
    
    IF NOT EXIST "%ARCPATH%" (
    ECHO ! Archiver not found, exiting. 
    GOTO END 
    ) ELSE (
    ECHO * Archiver Found. 
    ) 
    
    
    ECHO * Copying Files... 
    xcopy "%SOURCEPATH%\Documents" "%BACKPATH%\%BACKUP_DEST%\MPMissions" /v /e /s /i /y 1>NUL 2>NUL 
    
    ECHO * Archiving files... 
    CD /D "%BACKPATH%" 
    FOR /f %%a IN ('FORFILES /P %BACKPATH% /C "cmd /c if @isdir==TRUE echo @file" /D -%DAYSTOKEEP%') DO (
    IF NOT EXIST %%a.7z (
        "%ARCPATH%" %ARCPARAMS% %%a.7z %BACKPATH%\%%a\*.* 1>NUL 2>NUL 
        copy %%a.7z %DEST_PATH% 1>NUL 2>NUL 
        del %%a.7z 1>NUL 2>NUL 
    ) 
    ) 
    
    ECHO * Cleaning folders older than %DAYSTOKEEP% days.. 
    FORFILES /P %BACKPATH% /C "cmd /c if @isdir==TRUE rmdir /s /q @file" /D -%DAYSTOKEEP% 1>NUL 2>NUL 
    
    ECHO * Cleaning files older than %DAYSTOKEEP% days.. 
    FORFILES /P %BACKPATH% /M *.7z /C "cmd /c if @isdir==FALSE del @file" /D -%DAYSTOKEEP% 1>NUL 2>NUL 
    
    ECHO * Cleaning archives files older than %ARCHIVE_DAYSTOKEEP% days.. 
    FORFILES /P %DEST_PATH% /M *.7z /C "cmd /c if @isdir==FALSE del @file" /D -%ARCHIVE_DAYSTOKEEP% 1>NUL 2>NUL 
    
    
    :END 
    ENDLOCAL 
    

    それは、このメッセージを表示します。

  • バックアップパスが見つかりました。
  • アーカイバが見つかりました。
  • ファイルのコピー...
  • ファイルのアーカイブ... エラー:指定された検索条件でファイルが見つかりませんでした。
  • .. スクリプトが正常に実行され、30日よりも古いアーカイブファイルのクリーニング
  • ..ファイルを3日以上前のクリーニング
  • .. 3日より古いフォルダをクリーニング。このウィンドウを閉じることができます。

今変数%ThisService_RootDirectory%ゲームサーバサービスは、あるバッチスクリプトを実行し、IMユーザーのサービス 例の実際のパスにその変数を回すということ変数ようtcadminの一部である: %のThisService_RootDirectoryは% は です。\ TCAFiles \ users \ admin \ 5 \

スクリプトはファイルを必要なフォルダにコピーしますが、ファイルを圧縮してzipを必要なフォルダに移動するようには見えません。

誰でも助けてください。

元のソースはhttps://community.spiceworks.com/topic/482860-batch-script-to-transfer-and-compress

答えて

1

それはあなたの質問に直接回答ではないのですが、なぜ車輪の再発明にありますか? 必要なのは7zBackup.ps1です(正確にこれを行うpowershellスクリプト)

+0

ご意見ありがとうございます。私はすでにこれを調べました。残念ながら、私のアプリケーションではうまくいかないでしょう。私はメインスクリプトがそれを実行するユーザに基づいて変数を追加できるように必要とします。それはマルチファイルではありません。スクリプトを実行する唯一のオプションは、鉄のpythonとバッチ/シェルのスクリプトです。 –

関連する問題