2016-05-13 5 views
1

Я пытаюсь получить этот скрипт для резервного копирования определенной папки/файлов и их zip, а затем переместить zip в папку diff.windows server 2008 r2 7z backup script

, но я продолжаю получать сообщение об ошибке.

@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

ответ

1

Это не прямой ответ на ваш вопрос, но зачем изобретать велосипед? Все, что вам нужно, это в 7zBackup.ps1 (сценарий powershell, который выполняет именно это)

+0

Спасибо, что обратились к нам. Я уже изучил это. К сожалению, это не сработает для моего приложения. Мне это нужно, поэтому мой основной скрипт может добавлять переменные на основе пользователя, выполняющего его. Это не может быть многострочный скрипт, и моими единственными параметрами для выполнения скрипта являются скрипт python и пакетный/shell-скрипт. –