簡體   English   中英

Windows Server 2008 r2 7z 備份腳本

[英]windows server 2008 r2 7z backup script

我試圖讓這個腳本備份特定的文件夾/文件並壓縮它們,然后將 zip 移動到 diff 文件夾。

但我不斷收到錯誤消息。

@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

一旦我運行腳本,它會給出以下消息:

  • 設置環境變量。
  • 找到備份路徑。
  • 找到存檔器。
  • 正在復制文件...
  • 歸檔文件... 錯誤:未找到具有指定搜索條件的文件。
  • 清理超過 3 天的文件夾。
  • 清理超過 3 天的文件。
  • 清理超過 30 天的存檔文件。腳本已成功執行。 您可以關閉此窗口。

現在變量 %ThisService_RootDirectory% 是 tcadmin 的一部分,它是一個游戲服務器服務,因此執行批處理腳本的變量會將該變量轉換為用戶服務示例的實際路徑:%ThisService_RootDirectory% 是 C:\\TCAFiles\\users \\管理員\\5\\

該腳本將文件復制到所需的文件夾,但它似乎沒有壓縮文件並將 zip 移動到所需的文件夾。

任何人都可以在這里提供一些幫助。

原始來源位於https://community.spiceworks.com/topic/482860-batch-script-to-transfer-and-compress

這不是對您問題的直接回答,但為什么要重新發明輪子? 您所需要的只是7zBackup.ps1 (一個執行此操作的 powershell 腳本)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM