matze-pe
Goto Top

Beim Verschieben eine Textdatei mit Datum anlegen

Hallo miteinander,
ich habe eine Batchdatei die mir bestimmte Dateien heraussucht und anschließend umbenennt und verschiebt.

Jetzt speichere ich den "Verschieb-Vorgang" in eine textdatei, das klappt bis hier auch super.


Jetzt möchte ich das in der Textdatei die abgespeichert wird, Datum & Uhrzeit erscheint, wann er welche Datei verschoben hat.


Wie bekomme ich das hin, dass das Datum in der Textdatei steht?


Hier mein Skript:

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

set stunde=%time:~0,2%
set minute=%time:~3,2%
set sekunde=%time:~6,2%


for /f %%i in ('dir /b  "C:\Ruskaluga\*.d01"') do move "%%i" "C:\ziel\DELJIT-A200%%~ni">>C:\RusKaluga-kopieren.txt  


Gruß
Matze

Content-ID: 117945

Url: https://administrator.de/forum/beim-verschieben-eine-textdatei-mit-datum-anlegen-117945.html

Ausgedruckt am: 23.12.2024 um 18:12 Uhr

pxxsxx
pxxsxx 10.06.2009 um 17:17:25 Uhr
Goto Top
Hallo,
ich versteh das Ganze nicht so richtig. Warum zerlegst du Datum und Uhrzeit?

echo Die Datei %variablediedendateinamenenthält% wurde am %date% um %time% verschoben. >> C:\RusKaluga-kopieren.txt

Gruß
Peter
bytecounter
bytecounter 10.06.2009 um 17:29:21 Uhr
Goto Top
Moin matze-pe,

soweit ich weiß, geht das nur, wenn Du die Ausgabe nicht in eine Datei umleitest, sondern diese manuell erstellst. Da for-Schleifen nur ein Kommando enthalten dürfen, würde ich das mit einer zweiten Batch machen

...
for /f %%i in ('dir /b  "C:\Ruskaluga\*.d01"')   
do call move.bat %i

rem move.bat

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

set stunde=%time:~0,2%
set minute=%time:~3,2%
set sekunde=%time:~6,2%

@move "%1" "C:\ziel\DELJIT-A200%%~ni"  
echo move "%1" "C:\ziel\DELJIT-A200%%~ni" >>C:\RusKaluga-kopieren.txt  %jahr.%monat.%tag %stunde:%minute:%sekunde  
77559
77559 10.06.2009 um 17:43:17 Uhr
Goto Top
Zitat von @bytecounter:
Moin matze-pe,

soweit ich weiß, geht das nur, wenn Du die Ausgabe nicht in eine Datei umleitest, sondern diese manuell erstellst.
Da for-Schleifen nur ein Kommando enthalten dürfen, würde ich das mit einer zweiten Batch machen
Wie kommst du denn darauf?
  • Man kann mehrere Befehle in einer Zeile mit & hintereinander hängen,
  • Man kann mehrere Zeilen in Klammern hinter das Do setzen
  • Man kann ohne externe Datei eine interne Sub aufrufen, so wie dies hier:

@Echo off
Setlocal
Set Log=^>^>"C:\RusKaluga-kopieren.txt"  
Set "Mask=C:\Ruskaluga\*.d01"  
for /f %%i in ('dir /b  "%Mask%"') do Call :MoveLog "%~fi"  
Goto :Eof
:MoveLog
set DTStamp=%date:~-4%-%date:~-7,2%-%date:~-10,2% 
%Log% set /P =%DTStamp%_%time:~0,8% <NUL
%Log% move %1 "C:\ziel\DELJIT-A200%~n1"  
Goto :Eof

Gruß
LotPings
pieh-ejdsch
pieh-ejdsch 10.06.2009 um 20:43:51 Uhr
Goto Top
Zitat von @matze-pe:
for /f %%i in ('dir /b "C:\Ruskaluga\*.d01"') do move "%%i" "C:\ziel\DELJIT-A200%%~ni">>C:\RusKaluga-kopieren.txt
ähhm was steht dann hier in Deiner Txt drin???


Mach das mal so hier
for /f %%i in ('dir /b  "C:\Ruskaluga\*.d01"') do (  
	move "%%i" "C:\ziel\DELJIT-A200%%~ni"  
	echo %date:~-4%%date:~-7,2%%date:~-10,2%%time:~0,2%%time:~3,2%%time:~6,2% "%%i" "C:\ziel\DELJIT-A200%%~ni" >>C:\RusKaluga-kopieren.txt  
) 

das Ihr euern code immer so aufblasen müsst - versteh ich net...
matze-pe
matze-pe 10.06.2009 um 21:34:38 Uhr
Goto Top
Hallo miteinander,
vielen Dank für Eure schnelle Hilfe face-smile


Schönen Abend


Gruß
Matze
bastla
bastla 10.06.2009 um 22:46:10 Uhr
Goto Top
@pieh-ejdsch
Nur als Anmerkung: Bei dieser Variante wird natürlich für jede Datei die selbe Zeit eingetragen, aber auf die paar Sekunden Unterschied dürfte es wohl nicht ankommen (bzw ist das dann sogar als "Feature" zu verkaufen face-wink) ...

Grüße
bastla
pieh-ejdsch
pieh-ejdsch 11.06.2009 um 01:16:47 Uhr
Goto Top
@bastla
wusst ich gar nicht das die Zeit in der Forschleife bzw in der Klammer danach stehenbleibt.
Dann wirds halt als "undocumented Feature" (gibts den Begriff überhaupt?) verkauft.

Für die Fragen die noch nicht beantwortet wurden
Zitat von @pxxsxx:
ich versteh das Ganze nicht so richtig. Warum zerlegst du Datum und
Uhrzeit?
Ich denke mal damit man eine bessere sortierung hat nach

JJJJMMTTStundeMinuteSekunde

- ohne doppelpunkte
Meine Photos sind auch fast so nach dem Muster benannt da kommt man ein bisschen besser zurecht.

Aber ich hab Dann auch noch eine ...
Zitat von @bytecounter:
Zeile 12
echo move "%1" "C:\ziel\DELJIT-A200%%~ni" >>C:\RusKaluga-kopieren.txt %jahr.%monat.%tag %stunde:%minute:%sekunde
... Frage ! Wat soll das denn?
Batchparameter mit gekoppeltem VersuchsVariablen???? Dazu noch hinter dem Dateinamen - das bringt doch nix... wenn dann soherum und richtig Deine Zeile 12
echo move "%1" "C:\ziel\DELJIT-A200%%~ni"%jahr%.%monat%.%tag% %stunde%:%minute%:%sekunde%>>C:\RusKaluga-kopieren.txt   
sonst ists gut so.

Gruß PH
bastla
bastla 11.06.2009 um 07:23:49 Uhr
Goto Top
@ph
Die Variablenauflösung von %date% und %time%, aber auch etwa %random%, erfolgt wie bei "gewöhnlichen" Variablen nur zu Beginn der Schleife - wenn innerhalb der Schleife die aktuellen Werte verwendet werden sollen, müsste zu "delayedExpansion" oder einem Unterprogramm gegriffen werden ...

Grüße
bastla