Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Batch zum verschieben von Dateien nach Datum und erstellung von Ordner

Mitglied: satori

satori (Level 1) - Jetzt verbinden

27.03.2010, aktualisiert 18.10.2012, 33685 Aufrufe, 10 Kommentare

Dateien nach Datum ausschneiden, Verzeichnis anlegen, Dateien einfügen und das per Batch!

Hallo Zusammen,

ich möchte gerne folgendes tun. Ich möchte von einem bestimmten Verzeichnis Dateien mit bestimmtem Datum kopieren und in ein anderen, durch die batch selbst erstelltes und nach datum benannten Ordner verschieben.

Sprich:

Geht hierbei um bestimmte Voicefile.

Ich möchte also auf dem Quellverzeichnis die Dateien mit heutigem Datum auf einen anderen Server verschieben, die Batch sollte dann einen neuen Ordner erstellen welcher nach dem jeweiligen Datum benannt wird. Dies soll automatisiert jede nacht erfolgen.

Befinden sich zum beispiel auf server1/verzeichnis1/ dateien welche am 27.03.2010 erstellt wurden sollen diese auf server2/verzeichnis-xyz/ verschoben werden. Allerdings soll vorher ein Ordner angelegt werden welcher eben als namen das aktuelle Datum hat. Also //server2/verzeichnis-xyz/2010-03-27/ als beispiel.

Ist das möglich?
Könnt ihr mir da weiterhelfen?

Das Datum muss sich natürlich bei der erstellung der Ordnung täglich ändern. Das ganze möchte ich dann als geplanten Task oder so jede Nacht ausführen lassen.

Vielen Dank im Voraus.

Gruß
Mitglied: bastla
27.03.2010 um 14:43 Uhr
Hallo satori!

Nicht dass es so viel mehr Aufwand wäre, die Datumsprüfung auf "heute erstellt" (einfacher, und vermutlich mit dem selben Ergebnis, wäre "heute geändert") durchzuführen - aber wenn Du den Batch jeden Tag um 23:59 laufen lässt, sollten eigentlich (es wird ja verschoben) ohnehin nur heute erstellte Dateien im Quellordner vorhanden sein ...

Anyhow - versuch es mit diesem (total ungetesteten) Ansatz:
01.
@echo off & setlocal
02.
set "Quelle=\\server1\verzeichnis1"
03.
set "Ziel=\\server2\verzeichnis-xyz"
04.
set "Typ=.wav"
05.

06.
set "Datum=%date%"
07.
for /f "tokens=1-3 delims=." %%a in ("%Datum%") do set "ZielOrdner=%Ziel%\%%c-%%b-%%a"
08.
md "%Zielordner%" 2>nul
09.

10.
pushd "%Quelle%"
11.
for /f "tokens=1-3*" %%a in ('dir /a-d /tc *%Typ%^|findstr /i /e "\%Typ%"') do if "%%a"=="%Datum%" echo move "%%d" "%Zielordner%"
12.
popd
Zum entspannten Testen steht vor dem "move" noch ein "echo" - so werden die Verschiebe-Befehle vorerst nur angezeigt - erst nach dem Entfernen dieses "echo" wird tatsächlich verschoben ...

Grüße
bastla
Bitte warten ..
Mitglied: reXen96
27.03.2010 um 20:41 Uhr
hoffe das hilft ... ganz simples script

01.
@echo off
02.

03.

04.
set datum=%Date%
05.
set tag=%Datum:~0,2%
06.
set mon=%Datum:~3,2%
07.
set jahr=%Datum:~6,4%
08.

09.
set "quelcopy=\\server1\verzeichnis1\ *.*" 
10.
set "zielcopy=\\server2\verzeichnis1\%mon%-%tag%-%jahr%\*.*" 
11.

12.
xcopy "%quelcopy%" "%zielcopy%" /D:%mon%-%tag%-%jahr% /E /Y /I
13.

14.
pause

gruss rexen
Bitte warten ..
Mitglied: bastla
27.03.2010 um 20:48 Uhr
Hallo reXen96 und willkommen im Forum!

Gute Idee - und auch ausbaufähig in Richtung des eigentlich benötigten Verschiebens, indem Du mit dem Parameter "/L" zunächst eine Liste der betroffenen Dateien erstellst und diese dann per "for /f" durchgehst ...

(Dass bei dieser Vorgangsweise nicht das Erstell-, sondern das Änderungsdatum berücksichtigt wird, dürfte vermutlich kein größeres Problem sein.)

Grüße
bastla
Bitte warten ..
Mitglied: neueradmuser
27.03.2010 um 22:52 Uhr
hi bastla, du hast nicht zufällig die lust 2 deiner codezeilen für mich aufzuschlüßeln?
bin "fortgeschrittener anfänger" was batch angeht, aber mit diesem fot /f token delims brech ich mir immer einen ab

for /f "tokens=1-3 delims=." %%a in ("%Datum%") do set "ZielOrdner=%Ziel%\%%c-%%b-%%a"

for /f "tokens=1-3*" %%a in ('dir /a-d /tc *%Typ%^|findstr /i /e "\%Typ%"') do if "%%a"=="%Datum%" echo move "%%d" "%Zielordner%"

gruß und dank im voraus
Bitte warten ..
Mitglied: bastla
27.03.2010 um 23:23 Uhr
Hallo nightwishler!
hi bastla, du hast nicht zufällig die lust 2 deiner codezeilen für mich aufzuschlüsseln?
Aber ja doch ...
for /f "tokens=1-3 delims=." %%a in ("%Datum%") do set "ZielOrdner=%Ziel%\%%c-%%b-%%a"
Ziel ist es hier, den Inhalt von %Datum% (zB "27.03.2010") auseinanderzunehmen und als "2010-03-27" mit dem vorgegebenen %Ziel% zum Zielordner neu zusammenzusetzen.
Dazu wird an den Punkten getrennt ("delims" kommt von "delimiter" = Trennzeichen), wobei die Bestandteile ("tokens") 1 bis 3 benötigt werden.
Für das erste Token ("27") wird die Variable "%%a" vorgegeben, für die weiteren dadurch automatisch "%%b" (Wert = "03") und %%c (für "2010") verwendet.
Der Rest der Zeile sollte eigentlich klar sein ...
for /f "tokens=1-3*" %%a in ('dir /a-d /tc *%Typ%^|findstr /i /e "\%Typ%"') do if "%%a"=="%Datum%" echo move "%%d" "%Zielordner%"
Hier sollen zunächst die passenden "dir"-Zeilen ermittelt werden (durch "/a-d" werden sicherheitshalber Ordner von der Anzeige ausgeschlossen, "/tc" legt fest, dass Datum und Uhrzeit der Erstellung verwendet werden sollen).
Durch das Filtern mit "findstr" werden die Kopf- und Fußzeilen der "dir"-Ausgabe eliminiert, indem nur Zeilen weiterverwendet werden, die auf (im konkreten Beispiel) ".wav" (= Inhalt von %Typ%) enden ("/e").
Eine derartige Zeile könnte dann zB so aussehen:
27.03.2010  14:29            18.638 Nur ein Test.wav
Mit "for /f" wird in diesem Fall anhand des Default-Trennzeichens "Leerzeichen" (mehrere aufeinander folgende "delims" werden nur als eines gezählt) in die Tokens 1-3 und den Rest (= *; da der Dateiname Leerzeichen enthalten kann, soll alles nach dem dritten Teil als Einheit behandelt und nicht weiter aufgeteilt werden) zerlegt, sodass sich in "%%a" das Erstellungs-Datum, in "%%b" die Uhrzeit, in "%%c" die Dateigröße und in "%%d" der Dateiname befinden.
Damit kann dann für jede einzelne Datei durch den Vergleich von "%%a" mit dem bereits vorher gespeicherten aktuellen Datum (%Datum%) entschieden werden, ob sie heute erstellt wurde - wenn ja, wird die Datei verschoben (bzw der "move"-Befehl angezeigt).

Bei weiteren Fragen: fragen ...

Grüße
bastla
Bitte warten ..
Mitglied: satori
29.03.2010 um 08:32 Uhr
Hallo guten Morgen,

ein herzliches Danke schön an alle die mir das Grundgerüst geschickt habe, ich habe das ganze nun getestet indem ich 3 txt Dateien in den quellordner gezogen habe. Ich habe nun die batch wie folgt angepasst, habe den Server mit dem Quellverzeichnis hinterlegt und als format eben txt angegeben. Außerdem natürlich noch das Zielverzeichnis hinterlegt.

Er erstellt mir nen Ordner mit dem aktuellen Datum im Zielordner, allerdings kopiert er mich keine Dateien rein.
Weder mit der Batch von Bastla noch mit der von rexen96, wobei in der batch vom bastla wenn ich eine pause ans ende setze und ich mir batch dann anschaue, er wohl die dateien erkennt. Sie werden zumindest aufgelistet aber verschoben werden sie nicht!

Hat da jemand Rat?
Bitte warten ..
Mitglied: bastla
29.03.2010 um 10:07 Uhr
Hallo satori!
Sie werden zumindest aufgelistet aber verschoben werden sie nicht!
Das "echo" in Zeile 11 hast Du schon entfernt?

Solange das nämlich vor dem "move" steht, wird nicht verschoben, sondern nur angezeigt, welche Befehle ausgeführt würden ...

Grüße
bastla
Bitte warten ..
Mitglied: mantus
24.10.2011 um 10:07 Uhr
Hallo!

Auch wenn der Post alt ist, stehe ich vor einem ähnlichen Problem und wollte keinen neuen Thread lostreten

Es geht bei mir um die Bereinigung und Datenarchivierung mehrerer Altsysteme.
Hier müssen Daten (primär Grafiken) aus zig Unerverzeichnissen nach Datum sortiert werden, sprich:
Das Scrip sollte für jedes Erstelldatum ein eigenes Verzeichnis erstellen (Mit dem Erstelldatum) und dann die entprechenden Grafiken dorthin verschieben.

Ich hoffe Ihr habt da eine Idee... ich komme einfach nicht weiter. Habe noch nie mit Schleifen gearbeitet und habe keine Ahnung wie ich das Erstelldatum einer Datei
ausgeben kann...

Danke für eure Hilfe!
Bitte warten ..
Mitglied: bastla
24.10.2011, aktualisiert 18.10.2012
Hallo mantus und willkommen im Forum!

Es spricht grundsätzlich nix gegen das Erstellen eines neuen Threads - aber wenn Du schon einen alten als Grundlage nimmst, dann vielleicht eher diesen ...

Grüße
bastla
Bitte warten ..
Mitglied: mantus
24.10.2011 um 12:10 Uhr
Hallo bastla!
vielen Dank, genau sowas suchte ich. Keine Ahnung warum ich den nicht gleich gefunden habe...
Dann sucht man schon und übersieht doch das Wesentliche..

Nochmals Danke!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
(Batch) Datum Sortier-Mechanismus
gelöst Frage von clragonBatch & Shell19 Kommentare

Hallo zusammen. Ich bin schon etwas länger am Batch schreiben, und war schon oft uneingeloggt hier, und jetzt hab ...

Batch & Shell

Per Batch ein Datum in einer XML-Datei auf das aktuelle Datum aktualisieren

gelöst Frage von addy0604Batch & Shell4 Kommentare

Hallo Zusammen, ich hab hier ein kleines Problem. Wird für euch wahrscheinlich ein Klacks sein, aber ich verzweifle hier ...

Batch & Shell

Batch-Datei erstellen, um txt Dateien mit aktuellem Datum abzuspeichern

gelöst Frage von SuddenrageBatch & Shell3 Kommentare

Hallo zusammen, ich benötige eine bat welche das Datum aller txt Dateien zum aktuellen Datum ändert. Die txt Dateien ...

Batch & Shell

Batch - Excel - automatische Erstellung von fortlaufenden Nummern

gelöst Frage von freshman2017Batch & Shell2 Kommentare

Moin, gibt es eine Möglichkeit über eine Batch eine Excel Liste zu erstellen? In Spalte A soll dauerhaft 10000 ...

Neue Wissensbeiträge
Windows 7
Updategängelung auf Windows 10, die zweite
Information von Penny.Cilin vor 2 TagenWindows 7

Hallo, da Windows 7 im kommenden Jahr nicht mehr supportet wird, werden Nutzer von Window 7 home premium wieder ...

Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 4 TagenInternet1 Kommentar

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 5 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 7 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Heiß diskutierte Inhalte
Utilities
Teamviewer 9.x "out of date" ??
gelöst Frage von keine-ahnungUtilities12 Kommentare

Moin at all, mein topaktueller teamviewer (alles 9.x - releases) verweigert seit heute die Arbeit und bemeckert: "the remote ...

Windows Installation
Windows10 Home Neuinstallation - Raketentechnik
Frage von spacyfreakWindows Installation12 Kommentare

"Kannst du den Rechner von der Tante von WindowsXP auf Windows10 Home upgraden" haben sie gefragt? "Sicher, was kann ...

Windows 10
Windows 10 verwendet FritzBox per IPv6 als DNS-Server an Stelle des per DHCP vergebenen DNS-Servers
Frage von Datax87Windows 1010 Kommentare

Hallo, ich habe ein kleines Problem mit der Namensauflösung (DNS) unter Windows 10. Mir ist heute aufgefallen, dass ich ...

Peripheriegeräte
Empfehlung für Home-USV (ca. 450VA 270W) Irgendwelche Osterpreisaktionen bekannt?
Frage von Server-NutzerPeripheriegeräte9 Kommentare

Hallo und schöne Ostern. Meine private Heim-USV Yunto Q450 (ca. 450VA 270W) hat sich nach vielen Jahren ohne Probleme ...