【问题标题】:windows server 2008 r2 7z backup scriptwindows server 2008 r2 7z 备份脚本
【发布时间】:2016-06-06 19:30:47
【问题描述】:

我正在尝试让此脚本备份特定文件夹/文件并将它们压缩,然后将 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\admin\5\

脚本将文件复制到所需的文件夹,但它似乎没有压缩文件并将压缩文件移动到所需的文件夹。

谁能在这里提供一些帮助。

原始来源在https://community.spiceworks.com/topic/482860-batch-script-to-transfer-and-compress

【问题讨论】:

    标签: windows batch-file backup 7zip


    【解决方案1】:

    这不是对您的问题的直接回答,但为什么要重新发明轮子? 你所需要的只是7zBackup.ps1(一个正是这样做的powershell脚本)

    【讨论】:

    • 感谢您的反馈。我已经调查过了。不幸的是,它不适用于我的应用程序。我需要它,以便我的主脚本可以根据执行它的用户添加变量。它不能是多文件脚本,我执行该脚本的唯一选择是 Iron python 和批处理/shell 脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多