» Willkommen auf Software «

Jamaicaman
aus Paderborn
offline



OC God
22 Jahre dabei !

AMD Ryzen 5 @ 4250 MHz
72°C


Huhu

Folgendes Problem,

auszug aus meinem Post im LT


huhu,

ich hab mal ein kleines Prop.

Ich will eine Datei in einen anderen Ordner kopieren bevor diese mittels einer Batchdatei überschrieben wird.
Ich will also in die Batchdatei vorher ein copy befehl einbauen und die Datei weg kopieren. Mein Problem:

Die Datei hat immer den gleichen Dateinamen, und wird spätestens bei 2. mal kopieren die Datei überschreiben wollen.

Hab ich irgendwie die möglichkeit, das die Datei automatisch umbenannt wird?




Lösungsvorschlag vom Cheffe


Wenn das nur einmal am Tag passiert, wäre die einfachste Methode, die Datei mit einem Datum zu versehen.
z.B. einfach folgendes in eine test.bat schreiben (ggf. mit Pfadangaben, falls die Datei nicht im gleichen Verzeichnis ist):
copy test.txt test_%date%.txt

Mit der Uhrzeit geht das leider nicht ganz so einfach, da du in %time& die Doppelpunkte rausfiltern müßtest und dafür die time Funktion zerlegen müßtest.
Geht zwar auch, aber ist halt etwas aufwendiger.
Für alles weitere Topic aufmachen, da es zu schade wäre, das im LT untergehen zu lassen ...



Leider hilft mir die Date variante nicht weiter. Die "time" variante schon! Jedoch wie Cheffe schon sagt ist das Problem der Doppelpunkt.

Hat jemand einen Lösungsvorschlag?


Born stupid...?    Try again!

Beiträge gesamt: 2906 | Durchschnitt: 0 Postings pro Tag
Registrierung: Mai 2002 | Dabei seit: 8030 Tagen | Erstellt: 10:58 am 5. Sep. 2008
ocinside
aus Krefeld
online



Administrator
23 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


So, habe mir das gerade nochmal zur Brust genommen.
Ich würde dann die Datei mit Datum und vollständiger Uhrzeit abspeichern, damit es keine doppelten Dateinamen gibt.

Ist etwas komplizierter, deshalb hier direkt die richtige Zeile, die du einfach in einer DOS Batch eintragen kannst:

Code
for /f "delims=.,: tokens=1-6" %a in ("%date%,%time%") do copy test.txt test_%c_%b_%a_%d_%e_%f.txt

(in einer Zeile eintragen)

Aus test.txt wird dann z.B. test_2008_09_05_12_08_33.txt
Kannst du natürlich nach Belieben umbasteln ;)


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169736 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8396 Tagen | Erstellt: 12:10 am 5. Sep. 2008
Jamaicaman
aus Paderborn
offline



OC God
22 Jahre dabei !

AMD Ryzen 5 @ 4250 MHz
72°C


:godlike::godlike::godlike:

Klasse das Funktioniert!

THX!


Born stupid...?    Try again!

Beiträge gesamt: 2906 | Durchschnitt: 0 Postings pro Tag
Registrierung: Mai 2002 | Dabei seit: 8030 Tagen | Erstellt: 12:18 am 5. Sep. 2008
ocinside
aus Krefeld
online



Administrator
23 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


Ups, kleiner Nachtrag, natürlich jeweils zwei Prozent Zeichen in einer Batch verwenden, sonst klappt's natürlich nicht in batches.

Also z.B. in einer Datei test.bat so eintragen:
Code
for /f "delims=.,: tokens=1-6" %%a in ("%date%,%time%") do copy test.txt test_%%c_%%b_%%a_%%d_%%e_%%f.txt


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169736 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8396 Tagen | Erstellt: 12:21 am 5. Sep. 2008
Jamaicaman
aus Paderborn
offline



OC God
22 Jahre dabei !

AMD Ryzen 5 @ 4250 MHz
72°C


So habs nun in die Batchdatei eingebaut! Funktioniert so wie ich es mir vorgestellt hab.

Ich geb dir auf dem OC Inside treffen einen aus :beer:

Danke!


Born stupid...?    Try again!

Beiträge gesamt: 2906 | Durchschnitt: 0 Postings pro Tag
Registrierung: Mai 2002 | Dabei seit: 8030 Tagen | Erstellt: 12:38 am 5. Sep. 2008
ocinside
aus Krefeld
online



Administrator
23 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


Ich dir auch :lol:


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169736 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8396 Tagen | Erstellt: 13:07 am 5. Sep. 2008
Jamaicaman
aus Paderborn
offline



OC God
22 Jahre dabei !

AMD Ryzen 5 @ 4250 MHz
72°C


so ich muss das ganze nochmal hochholen, da mitlerweile ein problem aufgetreten ist.

zwar ziemlich Banal aber ich bekomms nicht hin.

es geht sich um folgendes:

wird die Batchdatei vor 10Uhr ausgeführt funktioniert diese nicht, da die zeit wie folge ausgegeben wird: (beispiel 08:54:01 soll so augegeben werden  085401 )  85401 problem: die 0 vor der 8 wird nicht mit ausgegeben und es wird ein Leerzeichen eingefügt, dies führt natürlich bei dem erstellen der Datei zu einem Syntaxfehler.

Wie bewege ich nun die Batchdatei dazu mir die Zeit korrekt auszugeben, oder das leerzeichen zu entfernen?

ich bekomms nicht hin...


Born stupid...?    Try again!

Beiträge gesamt: 2906 | Durchschnitt: 0 Postings pro Tag
Registrierung: Mai 2002 | Dabei seit: 8030 Tagen | Erstellt: 8:57 am 30. Sep. 2008
Zenmouron
aus NRW, Oberhausen
offline



OC God
19 Jahre dabei !

AMD Athlon 64 X2 Dual Core
2500 MHz @ 3200 MHz
00°C mit 1.30 Volt


Also ich habe jetzt zwar nicht wirklich ahnung davon, werf aber einfach mal eine Idee in den Raum. Benutzt du eine andere Uhr als die Standarduhr in deinen System? Also steht da z.B. 8:15 anstatt 08:15? Bzw. wie Zeigt es dein Bios an? Da die Batchdatei ja irgendwoher die Zeit nehmen muss, könnte ich mir das als ein Fehler vorstellen.


Du bist auch so eine kleine Red-Dot Pussi, oder? :)... Kimme und Korn, das ist noch ehrlich und gut.

Beiträge gesamt: 1236 | Durchschnitt: 0 Postings pro Tag
Registrierung: Jan. 2005 | Dabei seit: 7042 Tagen | Erstellt: 9:18 am 30. Sep. 2008
ocinside
aus Krefeld
online



Administrator
23 Jahre dabei !

Intel Core i9
3600 MHz @ 5200 MHz
78°C mit 1.552 Volt


Das ist ja putzig :)
Wenn's einigermaßen schnell gehen soll und Leerzeichen in den Dateinamen OK sind, würde ich einfach am Ende den Dateinamen in Anführungsstriche setzen und die Unterstriche ganz weglassen.
Also:
Code

for /f "delims=.,: tokens=1-6" %a in ("%date%,%time%") do copy test.txt "test %c %b %a %d %e %f.txt"


bzw.
Code

for /f "delims=.,: tokens=1-6" %%a in ("%date%,%time%") do copy test.txt "test %%c %%b %%a %%d %%e %%f.txt"

Alternativ müßte man nochmal mit for /? die Parameter für die Formatierung durchgehen, um das führende Leerzeichen zu entfernen.


Hardware News lesen * Unterhalten * Smarthome und Gadgets
Übertakten, Modding und Testberichte * Fanartikel kaufen

Beiträge gesamt: 169736 | Durchschnitt: 20 Postings pro Tag
Registrierung: April 2001 | Dabei seit: 8396 Tagen | Erstellt: 9:58 am 30. Sep. 2008
Jamaicaman
aus Paderborn
offline



OC God
22 Jahre dabei !

AMD Ryzen 5 @ 4250 MHz
72°C


:godlike::godlike: :ocinside:

da hätt ich auch drauf kommen können. Naja bin halt eher der Schrauber.

THX


Born stupid...?    Try again!

Beiträge gesamt: 2906 | Durchschnitt: 0 Postings pro Tag
Registrierung: Mai 2002 | Dabei seit: 8030 Tagen | Erstellt: 10:22 am 30. Sep. 2008