Tomiman 0 Geschrieben 4. September 2014 Melden Teilen Geschrieben 4. September 2014 (bearbeitet) Hallo MiteinanderIch benutze bats bisher nur für programmspezifische sachen, und nun möchte ich damit ein paar dateioperation machen.Für einen Profi ist meine frage sicher schnell zu beantwortet, daher würde ich mich sehr freuen über den exakten befehl für die bat.Ich möchte das ein Ordner inkl dateien und unterordner von einem festen pfad zu einem anderen festen pfad verschoben wird, und dabei gleichzeitig umbenannt wird in ein exaktes datumsformat.BeispielC:\ordner\ordner\logsDer ordner logs soll verschoben werden und dabei umbenannt werden, der umbenannte ordner soll exakt dieses datumsformat haben "2014.04.29=08-02-03" (Jahr, Monat, Tag, Stunden, Minuten Sekunden)Endergebnis dann soC:\neu\2014.04.29=08-02-03Dann suche ich noch den genauen befehl um eine datei in einen anderen ordner zu kopieren, und die vorhandene datei zu überschreiben.C:\ordner\ordner\datei.xxxkopieren und ersetzen zuC:\neu\neu\datei.xxxVielen Dank wenn mir jemand die exakten batzeilen für meine beispiele geben kann. bearbeitet 4. September 2014 von Tomiman Zitieren Link zu diesem Kommentar
Dr.Melzer 191 Geschrieben 4. September 2014 Melden Teilen Geschrieben 4. September 2014 Hallo Tomiman, schön dass du uns gefunden hast und willkommen on Board. :) Bitte achte darauf in deinen Beiträgen auch Großbuchstaben zu benutzen. Für uns sind Beiträge die konsequent oder zu großen teilen in Kleinschreibung verfasst sind schwer lesbar und dadurch wird deine Fragestellung für uns auch schwerer verständlich. Wir können dir aber nur dann wirklich gut helfen, wenn wir dein Problem gut verstanden haben. Je besser deine Beiträge für uns lesbar und verstehbar sind, umso besser können wir dir helfen. Wie siehst Du das? Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 4. September 2014 Melden Teilen Geschrieben 4. September 2014 Moin und Willkommen am Board :) An der Eingabeaufforderung ein Help zeigt die MSDOS-Befehle an, auch Date, Move, Rename und Xcopy. Leider ist der Befehlsumfang sehr rudimentär. Es ist nicht einfach, ein Datum auszulesen und einen Ordner damit zu benennen oder eine Datei. Ob es nicht besser wä#re, sich mit Powershell zu befassen? Zitieren Link zu diesem Kommentar
Tomiman 0 Geschrieben 4. September 2014 Autor Melden Teilen Geschrieben 4. September 2014 (bearbeitet) @Dr.MelzerJa, da hast du natürlich recht.Mich selber stört es bei andern nicht, verstehe aber das es andere stört.@lefgIch verwalte bereits eine Anwendung per bat, was sehr gut und schlank funktioniert, die Codezeilen die ich suche werden nur zusätzlich eingefügt um die Verwaltung der logs einfacher zu machen (was über die Jahre Tausende werden)Kann man den Ordner nicht erst verschieben, und dann als nächsten befehl Umbenennen ?Ich hatte schonmal irgendwo einen Datumsbefehl gesehn, wusste aber nicht wie ich ihn anwenden muss. bearbeitet 4. September 2014 von Tomiman Zitieren Link zu diesem Kommentar
XP-Fan 217 Geschrieben 4. September 2014 Melden Teilen Geschrieben 4. September 2014 Hallo Tomiman, mal so gerade auf Verdacht, testen mußt du es selbst noch: @echo off set start=c:\logs set ziel=d:\logs FOR /F %%i IN ('echo %date:~-4%.%date:~-7,2%.%date:~-10,2%---%time:~-11,2%.%time:~-8,2%.%time:~-5,2%') DO set verzeichnis=%%i md %ziel%\%verzeichnis% move %start%\*.* %ziel%\%verzeichnis%\ pause Originale liegen in c:\logs, sollen verschoben werden in d:\logs\jahr-monat-tag-uhrzeit Pfade müssen halt angepasst werden und wenn es läuft mach die Pause am Ende raus. Zitieren Link zu diesem Kommentar
Tomiman 0 Geschrieben 4. September 2014 Autor Melden Teilen Geschrieben 4. September 2014 (bearbeitet) Super, Vielen Dank !Genau so hab ich mir das vorgestellt, und funktioniert fast perfekt.Nur ein Problem, die Unterordnern und Dateien darin werden nicht mit verschoben, da fehlt noch ein Befehl schätze ich.Noch ein kleiner schönheitsfehler, die erzeugten Ordner sehen so aus "2014.09.04---16.53.23", die punkte konnte ich problemlos umändern, das es dann so aussieht "2014.09.04---16-53-23"Am liebsten wäre es mir aber so "2014.09.04=16-53-23"Tausche ich die "---" gegen "=" wird aber keine zeit mehr erzeugt, darf man "=" nicht verwenden ? bearbeitet 4. September 2014 von Tomiman Zitieren Link zu diesem Kommentar
Tomiman 0 Geschrieben 5. September 2014 Autor Melden Teilen Geschrieben 5. September 2014 Hab jetzt soweit alles hinbekommen, nur das die Unterordner inkl Dateien nicht mitverschoben werden aus dem Logs Ordner.Welchen Befehl muss ich dafür noch einfügen ?Ich hab nur hinbekommen, das ich einen spezifischen Ordner als Extra Befehl dann noch mitverschiebe.Ich möchte aber das alle Unterordern mit egal welchem Namen inkl der Dateien noch mitverschoben werden./S oder /E usw funktioniert nicht, beim Move befehlOder geht das nicht mit dem move befehl, das man alle Ordner in einem angegebennen Pfad veschiebt, ungeachtet des Namens ?Gibt es eine andere möglichkeit in dem von XP-Fan geposteten script ? Zitieren Link zu diesem Kommentar
Tomiman 0 Geschrieben 11. September 2014 Autor Melden Teilen Geschrieben 11. September 2014 Hallo Tomiman, mal so gerade auf Verdacht, testen mußt du es selbst noch: @echo off set start=c:\logs set ziel=d:\logs FOR /F %%i IN ('echo %date:~-4%.%date:~-7,2%.%date:~-10,2%---%time:~-11,2%.%time:~-8,2%.%time:~-5,2%') DO set verzeichnis=%%i md %ziel%\%verzeichnis% move %start%\*.* %ziel%\%verzeichnis%\ pause Originale liegen in c:\logs, sollen verschoben werden in d:\logs\jahr-monat-tag-uhrzeit Pfade müssen halt angepasst werden und wenn es läuft mach die Pause am Ende raus. Ich hab jetzt festgestellt das bei zeiten von 0:00 von vermutlich bis 9:59 keine zeiten im neuen Ordnernamen erzeugt werden, und somit alles in den selben datumsordner geschoben wird 17:44 hingegen funktioniert perfekt. Irgendwas muss im Datumsformat falsch sein. Wär super wenn mir da nochmal jemand helfen könnte. Ich möchte das script unbedingt die nächsten jahre nutzen. Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 11. September 2014 Melden Teilen Geschrieben 11. September 2014 Moin, weit entfernt in meiner Erinnerung läutet eine Glocke. Ich denke mal, es hängt mit der führenden Null zusammen. IMan sollte wohl das "Datumsformat" in einen "Text" umformen. Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 11. September 2014 Melden Teilen Geschrieben 11. September 2014 Du musst Zeit und Datum "parsen" und dann auf zweistellige Werte auffüllen. Sonst sind Leerzeichen drin... Zitieren Link zu diesem Kommentar
Tomiman 0 Geschrieben 13. September 2014 Autor Melden Teilen Geschrieben 13. September 2014 Hab jetzt mit Infos von hier mein script geändert https://groups.google.com/d/topic/alt.msdos.batch/YOv9hhlFMK4 SET start="C:\xxxxxxxxxx"SET ziel="C:\xxxxxxxxxx"SET d=%date:~-4,4%.%date:~-7,2%.%date:~0,2%SET d=%d: =_%SET t=%time:~0,2%-%time:~3,2%-%time:~6,2%SET t=%t: =0%FOR /F %%i IN ('echo %d%_%t%') DO SET verzeichnis=%%iMD %ziel%\%verzeichnis%MOVE %start%\*.* %ziel%\%verzeichnis%\MOVE %start%\xxxxxxxxxx %ziel%\%verzeichnis%\ Funktioniert jetzt auch von 0:00 bis 9:59 Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 13. September 2014 Melden Teilen Geschrieben 13. September 2014 Gratuliere, ich habs damals mal auf 00:00 gesetzt. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.