cali169
Goto Top

Datum via Batch in Dateiname auslesen und Aktion ausführen

Hallo zusammen,

ich habe etwas gegoogelt aber nichts gefunden.
ich hoffe auf eure Hilfe und bedanke mich schon im Voraus dafür.

ich habe eine Batchsicherung, welche mir täglich Datenbanken sichert. Der Dateiname sieht wie folgt aus
HSYYYY-MM-DD
wobei hier natürlich immer das aktuelle Datum geschrieben wird. Die Dateien werden im Verzeichnis "D:\Sicherung" hinterlegt.

Nun benötige ich ein Batchscript welches in dem Verzeichnis den Dateinamen ausliest und einen Kopiervorgang der
Dateien auslöst, welche im Tag ein 5 enthalten. Somit sollten 3 Datein im Monat in das andere Verzeichnis kopiert werden. Die Syntax fürs kopieren ist kein Problem, der Rest schon.
Wäre dankbar für eine Lösung. thx nochmals.

Content-ID: 189221

Url: https://administrator.de/contentid/189221

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

Karo
Karo 07.08.2012 um 15:39:20 Uhr
Goto Top
Tach,

@echo off
Setlocal EnableDelayedExpansion
for /F %%i in ('dir /B /A-D D:\Sicherung') do (  
  SET var=%%i
  IF "!var:~-1!"=="5" echo !var!  
)

bye
Karo
pieh-ejdsch
pieh-ejdsch 07.08.2012 aktualisiert um 15:53:28 Uhr
Goto Top
moin cali169,

mit xcopy kannst Du soetwas auch wunderbar lösen:
xcopy /Di D:\Sicherung\*-??-?5 "D:\Anderes Verzeichnis\"

Gruß Phil
cali169
cali169 07.08.2012 um 16:05:06 Uhr
Goto Top
Hallo Karo,

thx für Deine Antwort. Leider funktioniert das Kopieren nach D:\Sicherungtest nicht.
Habe das Script für das Verzeichnis angepasst. Die CMD startet und schliesst sich gleich. Ist bestimmt ein Denkfehler bei mir bzw. was mache ich falsch?
cali169
cali169 07.08.2012 um 16:14:45 Uhr
Goto Top
Hi Phil,

thx für Deine Antwort. Bei Deiner Lösung nimmt er mir alle Ordner aus dem August mit. Ferner fehlen Die Dateien in den Ordnern.

mfg Sven
pieh-ejdsch
pieh-ejdsch 07.08.2012 um 16:23:55 Uhr
Goto Top
Na die Datenbanken werden sicherlich eine Dateiendung haben.
Wenn diese an den Namen mit Platzhaltern angefügt werden, sollte es richtig kopieren.

Die Option /Listet nur auf:
xcopy /L /Di D:\Sicherung\*-??-?5.EXT D:\Sicherungtest\
Gruß Phil
Karo
Karo 07.08.2012 um 16:26:09 Uhr
Goto Top
Was hast Du denn eingefügt? Muß ja anstelle des echo !var! gesetzt werden

IF "!var:~-1!"=="5" (x)copy .....

Karo
bastla
bastla 07.08.2012 um 23:16:19 Uhr
Goto Top
@ph
Nur ganz nebenbei: Wenn das Ziel (durch den abschließenden Backslash) als Verzeichnis erkennbar ist, braucht's kein "/i" ...

Grüße
bastla
bastla
bastla 07.08.2012 um 23:21:00 Uhr
Goto Top
Hallo cali169!
Ferner fehlen Die Dateien in den Ordnern.
Was meinst Du damit? Bisher war eigentlich nur von Dateien die Rede, nicht davon, dass Ordner kopiert werden sollten ...

Außerdem:
Die CMD startet und schliesst sich gleich.
Tut sie nicht, wenn Du, wie es generell zu empfehlen ist, zuerst eine CMD-Shell öffnest und von dort aus den Batch testest (oder zumindest am Ende noch eine Zeile
pause
hinzufügst).

Grüße
bastla
cali169
cali169 20.08.2012 um 14:23:12 Uhr
Goto Top
hallo zusammen,

hatte leider einen kleinen unfall. sowie ich wieder im geschäft bin teste ich es und melde mich wieder.

grüsse sven