Batch Datei zum sichern und löschen von Dateien.

Munin666

Freizeitschrauber(in)
Batch Datei zum sichern und löschen von Dateien.

Ich hoffe mal das ich im richtigen Forum dafür bin...

FOR /F "tokens=1-4 delims=/.- " %%A IN ("%date%") DO (SET TT=%%A&SET MM=%%B&SET JJJJ=%%C)

SET Datum=%JJJJ%-%MM%-%TT%

FOR /F "tokens=1-6 delims=:, " %%A IN ("%time%") DO (SET hh=%%A& SET mm=%%B& SET ss=%%C& SET ms=%%D)

SET Uhrzeit=%hh%-%mm%-%ss%

SET NeuerOrdner=%Datum%_%Uhrzeit%
md "D:\OneDrive\Savegames\Grid Autosport\%NeuerOrdner%" 2>NUL

xcopy "D:\Program Files (x86)\Steam\userdata\93921769\255220\remote" "D:\OneDrive\Savegames\Grid Autosport\%NeuerOrdner%" /I /E

Dies ist meine derzeitige Batch Datei um den Grid Autosport Spielstand von mir mind 1x pro Systemstart zu sichern, die Datei wird voraussichtlich noch um ein paar andere Spiele erweitert.
Allerdings staut sich dadurch einiges an, weshalb ich gerne wissen würde, ob es irgendwie möglich ist die Ordner so weit zu löschen das man entweder nur noch die 7 Aktuellsten hat, oder zumindest alle zu löschen die älter sind als 1 Woche.

Wenn ihr mir diesbezüglich helfen könntet, wäre das echt super.
Danke schonmal im Voraus.
 
Zuletzt bearbeitet:
Da ich am handy bin kann ich den spoiler nicht öffnen, daher ein bisschen pseudocode:

Rm "Sicherungsverzeichnis"\*."dateiendung von spielständen"

Cp "ordner spielstand"\*. "dateiendung von spielständen"

"Sicherungsverzeichnis"
 
AW: Batch Datei zum sichern und löschen von Dateien.

Da ich am handy bin kann ich den spoiler nicht öffnen, daher ein bisschen pseudocode:

Rm "Sicherungsverzeichnis"\*."dateiendung von spielständen"

Cp "ordner spielstand"\*. "dateiendung von spielständen"

"Sicherungsverzeichnis"

Danke für deine angebotene Hilfe, aber ich glaube du solltest warten bis du den Code sehen kannst, ich habe ihn als Spoiler verpackt um ihn von anderen ab zu heben und meinen Post etwas kleiner wirken zu lassen.
Ich habe dir nun allerdings meinen Code mal als PN zukommen lassen.
 
AW: Batch Datei zum sichern und löschen von Dateien.

Sorry wegen doppelpost.
Ich habe jetzt einfach mal den Spoiler entfernt in der Hoffnung, dass ich doch irgendwie noch eine Antwort bekomme.
Das was ich vor habe muss doch irgendwie zu lösen sein, da die Ordner ja immerhin mit dem Datum immer abgespeichert werden.
Bloß meine Batch Kenntnisse sind "etwas" zu schlecht =(
 
AW: Batch Datei zum sichern und löschen von Dateien.

Hi,
also in Batch weiss ich´s nicht, aber in VBS könntest Du das wie folgt lösen:

Code:
strRootFolder = "D:\OneDrive\Savegames\Grid Autosport"

Set fso = CreateObject("Scripting.FileSystemObject")
Set ofolder = fso.GetFolder(strRootFolder)

' alle Unterverzeichnisse durchlaufen
for each folder in ofolder.subfolders
  KillFolderSub folder
next

Sub KillfolderSub(objFolder)

  ' alle Unterverzeichnisse durchlaufen
  for each subfolder in objfolder.subfolders
    KillFolderSub subfolder
  next

  'Wenn Ordner vor mehr als 7 Tagen erstellt wurde
  if objFolder.datecreated < (Date - 7) then

    'Alle Dateien im Ordner löschen
    for each file in objfolder.Files
      fso.DeleteFile(file.Path)
    next

    'Ordner löschen
    fso.DeleteFolder(objFolder.Path)
  end if

End Sub
 
AW: Batch Datei zum sichern und löschen von Dateien.

Wenn du auf Win7 unterwegs bist müsstest du mit dem Befehl "forfile" weiterkommen, Syntax wie hier:

Code:
forfiles -p "C:\Dein\Ordner" -s -m *.* /D -<Anzahl Tage> /C "cmd /c del @path"
Einfach mal in der Kommandozeile "forfile /?", der Rest erklärt sich von alleine ;)
Hab allerdings keinen Schimmer ob's den Befehl auch auf Win8(.1) noch gibt, kann ich momentan nicht nachschauen.

Alternativ gibts ne Möglichkeit per Powershell hier:
windows - Delete Files Older than (x) Days? - Server Fault

oder, wenn du wirklich eine schöne "Codewurst" basteln willst, kuck mal hier:
MS Dos Batch delete old files in directory - Stack Overflow
 
Zuletzt bearbeitet:
Zurück