g4rfi3ld
Goto Top

Batch mit datum und Zeit Copieren und verschieben

Hallo erst mal beisammen ich habs mir lange überlegt ne bat datei zu erstellen aber meine cfg kann es nicht also hab ich mich n bisschen schlau gemacht um folgendes Proplem zu lösen:
Aufgabe meiner seits ist 8 dateien (demo01.dem bis demo08.dem) aus dem überordner zu copieren und in einen Unterordner zu schreiben ( demo01_DATUM_Zeit.dem bis demo08_DATUM_ZEIT.dem so sollten die neuen datein aussehen)
Folgendes kam dabei herraus.


Batch datei
echo
cls

set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%

set zeit=%time:~%


set stunden=%time:~0,2%
set minuten=%time:~3,2%

ren demo01.dem demo01_%jahr%%monat%%tag%_%stunden%%minuten%.dem


xcopy *.dem D:\Steam\SteamApps\MEINNAME\counter-strike source\cstrike\DEMOS

D:\Steam\SteamApps\MEINNAME\counter-strike source\cstrike\cfg in diesem Ordner wir die batch datei ausgefürt ...
D:\Steam\SteamApps\MEINNAME\counter-strike source\cstrike in diesem Ordner sind die zu Kopierenden Datein gespeichert
D:\Steam\SteamApps\MEINNAME\counter-strike source\cstrike\DEMOS und in diesem Ordner sollten die Dateien gespeichert Werden

1. Ich könnte mit Xcopy die dateien Kopieren aber da liegt eben das problem das sich der Ordnername MEINNAME und das laufwerk von PC zu PC Variiert und vor allem wie springe ich von dem unterordner in den Überordner ohne den ganzen Pfad angeben zu müssen ???

2. Es würde mir schon reichen wen er die Datei demo01.dem copiert und in den DEMOS ordner mit geänderten namen speichert.

3. Es ist net gerade viel was ich geschaft habe aber las mal n Bäcker einen Eifelturm bauen (90jahre später hätte er vll das fundament rauf gehen würd ich nicht).........

ich hoffe ihr könnt mir helfen

Content-Key: 107660

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

Printed on: April 19, 2024 at 19:04 o'clock

Member: bastla
bastla Jan 30, 2009 at 23:28:48 (UTC)
Goto Top
Hallo G4rfi3ld und willkommen im Forum!

Ungetestet etwa so:
@echo off & setlocal
set "Quelle=demo*.dem"  
set "Ziel=DEMOS"  

set "jahr=%date:~-4%"  
set "monat=%date:~-7,2%"  
set "tag=%date:~-10,2%"  
set "stunden=%time:~0,2%"  
set "stunden=%stunden: =0%"  
set "minuten=%time:~3,2%"  

pushd ..
if not exist "%Ziel%" md "%Ziel%"  
for %%i in ("%Quelle%") do copy "%%i" "%Ziel%\%%~ni_%jahr%%monat%%tag%_%stunden%%minuten%%%~xi" >nul  
popd
Grüße
bastla
Member: G4rfi3ld
G4rfi3ld Jan 31, 2009 at 09:46:12 (UTC)
Goto Top
Bastla ... Pervect.... functioniert!!!
Dickes danke

aber hätte da noch ein zwei fragen:
1. Betreff der Zeile 1; in der zeile setzt du mit echo off die bildliche ausgabe auf aus und mit setlocal auf den aktuellen ordner wo die datei sich befindet ???
> @echo off & setlocal
 
2. In zeile 2-4 wird die Datei und das Ziel gesetzt. Aber wodurch weis das bat, datei das es in dem Ordner einen Unterordner erstellen soll?
> set "Quelle=demo*.dem"  
> set "Ziel=DEMOS"  
>

3. Zeile 5-11 ist so wie es ist. Weis zwar nicht wo die Prozente herkommen aber ist halt so.
> set "jahr=%date:~-4%"  
> set "monat=%date:~-7,2%"  
> set "tag=%date:~-10,2%"  
> set "stunden=%time:~0,2%"  
> set "stunden=%stunden: =0%"  
> set "minuten=%time:~3,2%"  
>

4. Pushd... sagt mir garnix kann mir auch nichts runter forstellen. zeile 5 ist soweit klar wenn nicht da dann erstelle Ordner
> pushd ..
> if not exist "%Ziel%" md "%Ziel%"  
5 warum hier zwei prozentreichen ohne ihrgendwas darin zu haben ???
> for %%i in ("%Quelle%") do copy "%%i"  
> "%Ziel%\%%~ni_%jahr%%monat%%tag%_%stunden%%minuten%%%~xi" >nul  
> popd
> 

Ich hab schon einiges gegoogelt aber alles wurde auch net klar...

Aber trotzdem Danke
bastla
Member: bastla
bastla Jan 31, 2009 at 10:10:37 (UTC)
Goto Top
Hallo G4rfi3ld!

Bevor ich (irgendwann später am Tag) dazu komme, hast Du vielleicht selbst schon einige Antworten auf Deine Fragen gefunden - dazu an der Eingabeaufforderung eingeben:
setlocal /?
pushd /?
for /?
Kurz zu 2 und 5
Aber wodurch weis das bat, datei das es in dem Ordner einen Unterordner erstellen soll?
Es wird ja zunächst nur der Name des Ordners als Variable %Ziel% festgelegt - die Verwendung der Variablen (zB in Zeile 13) entscheidet darüber, was damit gemeint ist ("md" kann sich zB nur auf einen Ordner beziehen ...)

warum hier zwei prozentreichen ohne ihrgendwas darin zu haben ???
Zwei Prozentzeichen werden in Batch für Schleifenvariable benötigt (und bei der Verarbeitung zu einem reduziert, wodurch dann wie an der Eingabezeile etwa ein %i daraus wird).

Grüße
bastla
Member: G4rfi3ld
G4rfi3ld Jan 31, 2009 at 10:27:45 (UTC)
Goto Top
Ok danke bastla
werd mich noch weiter am batch datein versuchen ich hoffe ich bekomme es hin.