Windows Server 2008 r2 7z备份脚本

我试图让这个脚本来备份一个特定的文件夹/文件,并将其压缩,然后将压缩文件移动到一个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 

一旦我运行脚本,它会给出这个消息:

  • 设置环境variables
  • find备份path。
  • findArchiver
  • 复制文件…
  • 归档文件…错误:找不到指定search条件的文件。
  • 清理超过3天的文件夹
  • 清理超过3天的文件
  • 清理超过30天的档案文件。脚本已成功执行。 你可以closures这个窗口。

现在,variables%ThisService_RootDirectory%是游戏服务器服务tcadmin的一部分,因此执行批处理脚本的variables会将该variables转换为用户服务示例的实际path:%ThisService_RootDirectory%是C:\ TCAFiles \ users \ ADMIN \ 5 \

该脚本将文件复制到所需的文件夹,但似乎不压缩文件并将zip移动到所需的文件夹。

任何人都可以在这里请一些协助。

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

这不是对你的问题的直接回应,而是为什么重新发明轮子? 所有你需要的是在7zBackup.ps1 (一个PowerShell脚本,正是这个)