Jump to content

Bat Befehl um Ordner zu verschieben und mit Datum/Zeit Umzubennen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Miteinander

Ich 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.


Beispiel
C:\ordner\ordner\logs
Der 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 so
C:\neu\2014.04.29=08-02-03



Dann 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.xxx

kopieren und ersetzen zu

C:\neu\neu\datei.xxx


Vielen Dank wenn mir jemand die exakten batzeilen für meine beispiele geben kann.

bearbeitet von Tomiman
Link zu diesem Kommentar

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?

Link zu diesem Kommentar

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?

Link zu diesem Kommentar

@Dr.Melzer
Ja, da hast du natürlich recht.
Mich selber stört es bei andern nicht, verstehe aber das es andere stört.


@lefg
Ich 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 von Tomiman
Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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 von Tomiman
Link zu diesem Kommentar

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 befehl
Oder 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 ?
 

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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=%%i
MD %ziel%\%verzeichnis%
MOVE %start%\*.* %ziel%\%verzeichnis%\
MOVE %start%\xxxxxxxxxx %ziel%\%verzeichnis%\

 

Funktioniert jetzt auch von 0:00 bis 9:59

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...