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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7162090507
Url: https://administrator.de/contentid/7162090507
Ausgedruckt am: 22.11.2024 um 01:11 Uhr
4 Kommentare
Neuester Kommentar
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