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
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. –