Altes Thema Batch aktuelle Datei kopieren?
Hallo liebe Freunde,
so alt und so oft dieses dieses Thema schon behandelt wurde trete ich doch irgendwie auf der Stelle?
Ich möchte in einem Verzeichnis die Tages aktuelle csv Datei in ein anderes Verzeichnis kopieren.
Folgendes dachte ich mir:
Die csv Dateien stehen haben bekommen vom system bereits folgenden Namen zb: datei_20230515_115731.csv
Fehler: kann Datei nicht finden.
Andere, einfachere Lösungen?
Vielen Dank.
LG Stefan
so alt und so oft dieses dieses Thema schon behandelt wurde trete ich doch irgendwie auf der Stelle?
Ich möchte in einem Verzeichnis die Tages aktuelle csv Datei in ein anderes Verzeichnis kopieren.
Folgendes dachte ich mir:
@echo off
set "basefolder=L:\csvDateien"
set "nowDate=%date%"
set "destFolder=W:\csvOrdner"
for /f "tokens=*" %%a in ('dir /b /s /a-d "%basefolder%*.csv"') do (
set "fileTime=%%~ta"
set "fileDate=!fileTime:~0,10!" & rem Dateidatum von Dateizeit abtrennen
if [!fileDate!]==[%nowDate%] (
echo %%~a, !fileDate! , %nowDate%
copy /b "%%a" "%destFolder%" >nul 2>&1 && echo %%~nxa nach %destFolder% kopiert... || echo %%~nxa Zugriff verweigert ^^!^^!
echo:
)
)
pause
exit /b
Die csv Dateien stehen haben bekommen vom system bereits folgenden Namen zb: datei_20230515_115731.csv
Fehler: kann Datei nicht finden.
Andere, einfachere Lösungen?
Vielen Dank.
LG Stefan
Please also mark the comments that contributed to the solution of the article
Content-ID: 7162090507
Url: https://administrator.de/contentid/7162090507
Printed on: September 7, 2024 at 12:09 o'clock
4 Comments
Latest comment
Mit powershell wird alles leichter, aber du hattest ja explizit nach Batch gefagt 😉.
da ist aber ein kleiner Fehler drin:
gibt dir das Datum von gestern um die derzeitige Uhrzeit zurück. Du kopierst damit also nicht nur Dateien von heute, sondern ggfs. auch welche von gestern, solange sie in den letzten 24 Stunden erstellt wurden.
Um wirklich nur Dateien von heute zu kopieren:
Gruß Thomas
dir L:\csvDateien\*.csv | ?{$_.LastWriteTime -gt (Get-date).AddDays(-1)} | Copy-Item -Destination "W:\csvOrdner\"
(Get-Date).AddDays(-1)
Um wirklich nur Dateien von heute zu kopieren:
dir L:\csvDateien\*.csv | ?{$_.LastWriteTime.date -eq (Get-date).date} | Copy-Item -Destination "W:\csvOrdner\"
Gruß Thomas