cantan
Goto Top

Mit Batchdatei, kopieren nach Datum

wer weiß rat?

hi admin's
ich habe ein verzeichnis c:\xyz in welchem jeden tag neu eine backupdatei landet (max anzahl 5 stk --> backup1_02.02.2011,backup2_03.02.2011,backup3_04.02.2011 usw.)
nun möchte ich aus diesem verzeichnis per batch, die jeweils aktuellste, egal an welchen tag ich dies tue, van A -> nach > B kopieren !!
hat wer eine idee wie man die umsetzen kann?
muss auch nicht unbedingt batch sein. auch WSH oder anderes möglich!
evtl. beschreibts diese zeile am besten ...
Scripting.FileSystemObject DateCreated DateLastModified
danke

Content-Key: 163594

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

Ausgedruckt am: 28.03.2024 um 21:03 Uhr

Mitglied: 60730
60730 29.03.2011 um 21:56:34 Uhr
Goto Top
moin, schau dir mal

for /f "delims=" %a in ('dir /b /a-d /od') do echo copy "%~dpna" "ziel\"
genauer in der Dosbuxx an...

Gruß
Mitglied: Biber
Biber 29.03.2011 um 22:11:46 Uhr
Goto Top
[OT]
Moin CanTan,

Zitat von @CanTan:
evtl. beschreibts diese zeile am besten ...
Scripting.FileSystemObject DateCreated DateLastModified
Will ich ja jezz' nich' kategorisch ausschliessen... Elvis könnte noch leben, glauben viele. Und klar können Schweine fliegen.

Aber ich brauch einen Moment, um darüber nachzudenken, okay?

Bis dahin verschiebe ich's mal von "Windowsoderwatt" nach "Batches From Hell".

Grüße
Biber
[/OT]
Mitglied: bastla
bastla 29.03.2011 um 22:15:45 Uhr
Goto Top
... dann siehst Du vielleicht, dass Du nur die letzte Datei benötigst - also etwa:
for /f "delims=" %a in ('dir /b /a-d /od backup?_*') do set "Neueste=%a"
Wenn's dann ein Batch wird, jeweils "%%a" anstelle des "%a" ...

Grüße
bastla

@t-mo
Da "dir /b" ohne "/s" keinen Pfad liefert, ist "%~dp" nicht zweckdienlich (aber schadet zumindest nicht, solange nur das aktuelle Verzeichnis beackert wird), aber das "x" (= alles nach dem letzten ".") unterschlagen ...
Mitglied: Skyemugen
Skyemugen 29.03.2011 um 22:26:24 Uhr
Goto Top
Aloha,

[OT]
cool, erinnert mich ein wenig an einen anderen Thread heute aber hier darf dein /a-d diesmal stehen *gg*, dich nicht auch irgendwie? ok, jetzt brauchen wir wieder "delims=", höhö
[/OT]

Grüße, André

edit: Dann sagen wir einfach, du hast es in weiser Voraussicht schonmal platziert *gg* - man kann ja nie wissen.
Mitglied: bastla
bastla 29.03.2011 um 22:30:31 Uhr
Goto Top
Hallo Skyemugen!
ok, jetzt brauchen wir wieder "delims=", höhö
"Brauchen" ja nicht gerade (solange die Dateinamen so bleiben, wie sie sind), aber das macht nix ... face-wink

Grüße
bastla
Mitglied: CanTan
CanTan 29.03.2011 um 22:36:21 Uhr
Goto Top
geht klaro biber!
@timobeil: der ansatz ist supi !!
heißt im klartext, ich erstelle eine datei die so aussieht wie die die ich am ende kopieren will.
da krüppel ich mal noch etwas drüber ... guter ansatz!

oha ..hier haben sich wohl ein paar antworten überschnitten!
bin am sammel .. und sach scho mal danke !!
Mitglied: 60730
60730 29.03.2011 um 22:44:09 Uhr
Goto Top
Salü Bastla

eigentlich glaub ich dir ja fast alles - jetzt hab ich mal einen VPN/RDP aufgemacht und .....
  • mir kein "S" gekauft....
  • extra ein paar Sonderzeichen reingetüddelt [-] damit ich den Pfad nicht sehe - oder

back-to-topich bin Blind

Bastla hat mich geheilt - ich kann wieder sehen face-wink

C:\script>for /f "delims=" %a in ('dir /b /od') do @echo [-%~dpna]
[-C:\script\EULA]
[-C:\script\snapshot]
[-C:\script\service]
[-C:\script\nc_net]
[-C:\script\remove_ca_lang]
[-C:\script\snap]
[-C:\script\snap_e]
[-C:\script\tester]
[-C:\script\_berlin]
[-C:\script\explorer]

btw: lustigerweise hatte ich zuerst dein set latest, dann hab ich gesehen, das er kopieren will und den guten Ansatz übern Haufen geworfen....

Gruß
Gruß
Mitglied: bastla
bastla 29.03.2011 um 22:47:19 Uhr
Goto Top
@t-mo
Und jetzt das Ganze nochmal mit einem anderen Pfad:
for /f "delims=" %a in ('dir /b /od C:\') do @echo [-%~dpna]
- da tatsächlich aus dem "dir /b" kein Pfad kommt, wird eben einer (der aktuelle) dazu erfunden (weshalb es, wie angemerkt, auch weiter nicht schadet, wenn's ohnehin nur um das aktuelle Verzeichnis geht - dann ist die Pfadangabe nur überflüssig face-wink).
dann hab ich gesehen, das er kopieren will und den guten Ansatz übern Haufen geworfen....
Wieso, wenn doch nur eine Datei kopiert werden soll?

Grüße
bastla
Mitglied: 60730
60730 29.03.2011 um 22:50:04 Uhr
Goto Top
Zitat von @bastla:
@t-mo
Und jetzt das Ganze nochmal mit einem anderen Pfad:
for /f "delims=" %a in ('dir /b /od C:\') do @echo [-%~dpna]
> 

5 Mark ins Schweinchen , und zwei paar ^ da oben in die Tonne...

Grüße
bastla

Schankedöhn - mit Äpfeln soll man keine Birnenscripte aus der Hüfte schiessen...

Grüße
Mitglied: CanTan
CanTan 29.03.2011 um 23:23:36 Uhr
Goto Top
wenns den doch mal so einfach wäre!

die dateien heißen auf N:\backup\
zB:
SICHER_backup_201103212200.bak
SICHER_backup_201103222200.bak
SICHER_backup_201103232200.bak
SICHER_backup_201103242200.bak
SICHER_backup_201103252200.bak
SICHER_backup_201103282200.bak

...und jeden tag, wird die älteste datei, durch eine neue ersetzt ....
wann auch immer mein batch angeschoben wird, er soll immer nur die eine (neuste) rüber
auf zB: K:\ kopieren!
Mitglied: bastla
bastla 29.03.2011, aktualisiert am 18.10.2012 um 18:46:17 Uhr
Goto Top
Hallo CanTan!

Du hast Dir meinen Ansatz da oben (auf Basis Deines Dateinamen-Beispiels "backup1_02.02.2011") angesehen?

Grüße
bastla
Mitglied: Skyemugen
Skyemugen 30.03.2011 um 08:26:20 Uhr
Goto Top
Aloha bastla!

Wobei ja so wie es jetzt wohl doch anders ist, könnten wir ja wieder auf das schöne /on umspringen.
for /f %%a in ('dir /b /s /a-d /on "%Quelle%\SICHER_backup_20??*.bak"') do set "Neueste=%%a"

... aber ich bezweifle, dass er deine Frage positiv beantworten kann auch wenn er eine Stunde sich dafür Zeit gelassen hat ;)

greetz André
Mitglied: bastla
bastla 30.03.2011 um 08:53:39 Uhr
Goto Top
...wobei wir dann aber gleich Nägel mit Köpfen machen könnten:
set "Quelle=N:\Backup"  
for /f %%a in ('dir /b /s /a-d /on "%Quelle%\SICHER_backup_20??*.bak"') do set "Neueste=%Quelle%\%%a"  
Grüße
bastla
Mitglied: Skyemugen
Skyemugen 30.03.2011 um 09:02:39 Uhr
Goto Top
... dann aber bitte gleich komplett (btw: "Neueste=%Quelle%\%%a" ? jetzt wo /s vorhanden ist, doch eher überflüssig) ;)
@echo off & setlocal
set "Quelle=N:\Backup"   
set "Ziel=K:\"  

for /f %%a in ('dir /b /s /a-d /on "%Quelle%\SICHER_backup_20??*.bak"') do set "Neueste=%%a"  
copy %Neueste% %Ziel%

Grüße, André
Mitglied: bastla
bastla 30.03.2011 um 09:46:13 Uhr
Goto Top
@Skyemugen
Sorry, hatte nur (zu) kurz drübergeschaut (ansonsten hätte ich oben schon das "/s" rausgenommen, da, so wie ich es verstehe, nur Dateien aus dem Quellordner - und nicht allfälligen Unterordnern - verarbeitet werden sollen; und nur wegen des vollständigen Pfades würde ich diese Option nicht empfehlen) ...

Grüße
bastla

P.S.: Jetzt hast Du CanTan auch die letzte Gelegenheit zu eigener Leistung genommen ...
Mitglied: Skyemugen
Skyemugen 30.03.2011 um 09:49:54 Uhr
Goto Top
Aloha bastla!

ich ging nicht davon aus, dass in den Unterordnern ebenfalls nochmal Dateien nach vorgegebener Maske existieren (und dann noch dem letzten Wert entsprechen würde) *gg* wenn doch, hat CanTan doch noch Gelegenheit etwas selbst zu verändern ... wie war das gestern, du wolltest doch auch etwas spannender machen, hehe

Grüße, André

P.S.: also @echo off, Ziel und copy zu setzen, würde ich nicht als Leistung ansehen ;) die for-Schleife haben wir ihm ja schon abgenommen
Mitglied: 60730
60730 30.03.2011 um 11:07:54 Uhr
Goto Top
moin Junx und Mädelzzz..

[OT]
@ Sky deine Batch hat aber einen eingebauten selbstzerstörungs Counter 89 jahre lief es und auf einmal
Ich kann mich noch gut an unsere 3270 Zeiten erinnern, das wurden Verträge ohne Ablaufdatum immer mit 99 eingetragen.....
@bastla:
P.S.: Jetzt hast Du CanTan auch die letzte Gelegenheit zu eigener Leistung genommen ...
Diese Zeile aus deiner Feder face-wink *duck*
[/OT]

Grüße
Mitglied: Skyemugen
Skyemugen 30.03.2011 um 11:09:52 Uhr
Goto Top
Zitat von @60730:
moin Junx und Mädelzzz..
Aloha T-Mo,
[OT]
@ Sky deine Batch hat aber einen eingebauten selbstzerstörungs Counter 89 jahre lief es und auf einmal
[/OT]
I know, I know aber wir sind doch beide realistisch und glauben nicht daran, dass 2100 n.Chr. die Batch noch ihre Arbeit tun wird *g*

greetz André
Mitglied: bastla
bastla 30.03.2011 um 15:26:32 Uhr
Goto Top
@t-mo
Ich weiß doch, womit ich Dir eine Freude machen kann ... face-wink

Grüße
bastla
Mitglied: CanTan
CanTan 30.03.2011 um 18:28:57 Uhr
Goto Top
hallo, hallo, hallo administratoren.
wie kann ich euch jemals danken!????
ok, ich überweise euch alles was ich an geld auf meinen konten habe.
1x 2,60€, 1x 5,69€ und 1x 11,99€ !! face-wink

habe es glech mal getestet und funkt absolut priiiima!
i love your all°° verneig° und friede mit euch!
Mitglied: Skyemugen
Skyemugen 30.03.2011 um 18:40:44 Uhr
Goto Top
Aloha,

*lach* so dankbar war bisher auch niemand, schön zu lesen *gg*

Dann nur noch Wie kann ich einen Beitrag als gelöst markieren? gesetzt und die Arbeit ist getan *^__^*

P.S.: Lass mal deine Kröten stecken *grins* reichen nichtmal für's Frühstück :P

Möge die Batch mit dir sein *lmw*
Mitglied: bastla
bastla 30.03.2011 um 18:51:13 Uhr
Goto Top
Hallo CanTan!

Freut mich, wenn's passt - aber lass mal stecken ... face-smile
@Skyemugen
reichen nichtmal für's Frühstück :P
Wie jetzt - für uns alle zusammen?

Grüße
bastla

P.S.: Ging sich dann ja aber dieses Mal doch noch ganz gut aus - wenn man bedenkt, wieviel Monat sonst schon gelegentlich am Ende des Geldes noch übrig war ... face-wink