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:
Gruß
Matze
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
8 Kommentare
Neuester Kommentar
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
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
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?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
- 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
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???for /f %%i in ('dir /b "C:\Ruskaluga\*.d01"') do move "%%i" "C:\ziel\DELJIT-A200%%~ni">>C:\RusKaluga-kopieren.txt
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...
@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 ) ...
Grüße
bastla
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 ) ...
Grüße
bastla
@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
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 ...
Zeile 12
Batchparameter mit gekoppeltem VersuchsVariablen???? Dazu noch hinter dem Dateinamen - das bringt doch nix... wenn dann soherum und richtig Deine Zeile 12
sonst ists gut so.
Gruß PH
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
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 ...
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
Gruß PH
@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
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