teleplangmbh
Goto Top

Ordner täglich wegkopieren und datum Anhängen

Hallo,

habe einiges Versucht aber es will nicht funktionieren..

In Ordner A werden jeden Tag dateien abgelegt. Bei batchaufruf soll ein neuer Ordner B angelegt und der Inhalt von A dort abgelegt und abschliessend aus A gelöscht werden.
Im Ordnernamen von B muss das Datum enthalten sein, also z.B. Rechnungen220408.

Danke!

Content-ID: 86138

Url: https://administrator.de/forum/ordner-taeglich-wegkopieren-und-datum-anhaengen-86138.html

Ausgedruckt am: 22.04.2025 um 08:04 Uhr

60730
60730 22.04.2008 um 17:47:19 Uhr
Goto Top
Hi,

geht ganz einfach - Ergebnis sollte das gleiche wie dein Ziel sein, -jedoch ändert die Batch den Namen des Rechnungsordners in Rechnungsordner-datum um und erstellt dann einen neuen leeren Rechnungsordner.
FOR /F "TOKENS=1,2*" %%A IN ('DATE/T') DO SET DATE=%%B  
move c:\rechnungen c:\rechnungen-%date%
md c:\rechnungen
6741
6741 22.04.2008 um 17:58:56 Uhr
Goto Top
*

md c:\rechnung_%date%

move c:\rechnung\*.* c:\rechnung_%date%

*

geht, habs getestet ....

gruß

und das ist nur ein zweizeiler ...

diese batch um 22:00 und wech sind dies Dateien ...
60730
60730 22.04.2008 um 18:10:35 Uhr
Goto Top
geht, habs getestet ....

und das ist nur ein zweizeiler ...

einzeller
md c:\rechnung_%date% |move c:\rechnung\*.* c:\rechnung_%date%

Leider haben sowohl der Ein als auch der Zweizeiler den fahlen Nachgeschmack, das der Ordner
c:\rechnung_Di
und in dem Ordner, von wo aus das Skript gestartet wird der Unterordner "22.04.2008" erstellt wird.

Dann doch lieber die eine Zeile mehr in Kauf nehmen.
bastla
bastla 22.04.2008 um 18:23:35 Uhr
Goto Top
Hallo TeleplanGmbH und willkommen im Forum!

Da Du uns nicht wissen lässt, auf welchem System der Batch laufen soll, eine Datumsauslesevariante (ob's diese Wort vorher schon gab? face-wink), die sowohl auf (dt) W2000 als auch ab XP funktioniert:
set "Jahr=%date:~-4%"  
set "Monat=%date:~-7,2%"  
set "Tag=%date:~-10,2%"  
Die einzelnen Bestandteile kannst Du nach Bedarf kombinieren. Um etwa vernünftig sortierbare Ordnernamen der Art
Rechnungen_2008-04-22
zu erzeugen, ginge das so:
set "Ordner=Rechnungen_%Jahr%-%Monat%-%Tag%"  
Den Rest haben ja bereits Timobeil und firewalldevil dargestellt - mit der Variablen %Ordner% sähe das dann so aus:
md "C:\%Ordner%"  
move "C:\Rechnung\*.*" "C:\%Ordner%\"  
Die vielen Anführungszeichen bei meinem Vorschlag sind rein vorbeugender Natur (falls sich irgendwo in einem Pfad oder Dateinamen Leerzeichen befinden sollten) ...

Grüße
bastla
6741
6741 22.04.2008 um 21:15:11 Uhr
Goto Top
> geht, habs getestet ....

und das ist nur ein zweizeiler ...

einzeller
> md c:\rechnung_%date% |move
c:\rechnung\*.* c:\rechnung_%date%

Leider haben sowohl der Ein als auch der
Zweizeiler den fahlen Nachgeschmack, das der
Ordner
> c:\rechnung_Di
und in dem Ordner, von wo aus das Skript
gestartet wird der Unterordner
"22.04.2008" erstellt wird.

Dann doch lieber die eine Zeile mehr in Kauf
nehmen.



sorry, das verstehe ich nicht, warum soll ein Ordner dort erstellt werden??? Ist doch eindeutig, oder?

@bastla ... ja, an das Datum habe ich auch gedacht... danke für die Verbesserung!

gruß Gerald
bastla
bastla 22.04.2008 um 21:23:41 Uhr
Goto Top
@fwd

TimoBeil verwendet offensichtlich W2000 (NT wird's ja wohl doch nicht sein face-wink), wo das heutige Datum so angezeigt wird:
Di 22.04.2008
Folge: Der "md"-Befehl erzeugt tatsächlich die beiden Ordner "rechnung_Di" und "22.04.2008".

Um genau dieses Problem zu umgehen, verwende ich die oben unten dargestellte Schreibweise, mit der ich das Ganze "von hinten" aufrolle ...

Grüße
bastla
TeleplanGmbH
TeleplanGmbH 23.04.2008 um 09:55:56 Uhr
Goto Top
Hallo,

danke für die vielen Antworten:

Einfach den Ordner verschieben und einen neuen erstellen geht nicht wegen der Zugriffsrechte:
In den A Ordner darf jeder schrieben, aber am nächsten tag (nac hdem verschieben) nur noch bestimmte Personen.

Habe verschiedene Vorshcläge hier zusammengeführt zu folgendem Skript, das wunder bar funktioniert:
FOR /F "TOKENS=1,2*" %%A IN ('DATE/T') DO SET DATE=%%B  
md "c:\Ablage\Eingang_%date%"  
copy  "c:\Eingang\*.*" "c:\Ablage\Eingang_%date%"  
del /q "c:\Eingang\*.*"  
Ordnernamen sind natürlich fiktiv, der tatsächliche, lange Pfad bringt ja keinem was..

Also, vielen Dank - problem gelöst face-smile