2016-05-13 13 views
1

Ich versuche, dieses Skript zu sichern eine bestimmte Ordner/Dateien zu erhalten und zip sie dann die Zip auf einen diff Ordner verschieben.Windows Server 2008 R2 7z Backup-Skript

aber ich halte einen Fehler.

@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 

sobald ich das Skript ausführen gibt es diese Meldung:

  • Umgebungsvariablen einrichten.
  • Backup-Pfad gefunden.
  • Archiver gefunden.
  • Kopieren von Dateien ...
  • Archivieren von Dateien ... FEHLER: Keine Dateien mit den angegebenen Suchkriterien gefunden.
  • Reinigungs Ordner älter als 3 Tage ..
  • Reinigungs Dateien, die älter als 3 Tage ..
  • Reinigungs Archive Dateien, die älter als 30 Tage .. Das Skript erfolgreich ausgeführt wurde. Sie können dieses Fenster schließen.

Nun ist die Variable% ThisService_RootDirectory% gehört tcadmin, die ein Gaming-Server-Dienst ist, so dass die Variable, wo im die Batch-Skript ausgeführt würde diese Variable in einen tatsächlichen Pfad der Benutzer-Dienst aktivieren Beispiel: % ThisService_RootDirectory % ist C: \ TCAFiles \ users \ admin \ 5 \

das Skript kopiert die Dateien auf den gewünschten Ordner, aber es scheint nicht, um die Dateien zu komprimieren und die Zip auf den gewünschten Ordner zu verschieben.

kann jemand etwas Unterstützung geben Sie bitte hier.

ursprüngliche Quelle ist bei https://community.spiceworks.com/topic/482860-batch-script-to-transfer-and-compress

Antwort

1

Es ist keine direkte Antwort auf Ihre Frage, aber warum das Rad neu erfinden? Alles, was Sie brauchen, ist in 7zBackup.ps1 (ein Powershell-Skript, das dies tut genau)

+0

Vielen Dank für Ihr Feedback. Ich habe schon darüber nachgedacht. Leider wird es für meine Anwendung nicht funktionieren. Ich brauche es, damit mein Hauptskript Variablen basierend auf dem Benutzer hinzufügen kann, der es ausführt. Es kann kein Multifile-Skript sein und meine einzigen Optionen zur Ausführung des Skripts sind Iron Python und Batch/Shell-Skript. –

Verwandte Themen