Dateiname per Batch auslesen und um eine Stelle verkleinern
Hallo zusammen,
ich hatte gerade schon eine Frage zwecks Dateien kopieren im Forum gestellt und zum Glück auf mal selbst die Antwort gefunden.
Jetzt habe ich wieder eine Änderung, die ich irgendwie nicht hinbekomme und auch noch keinen richtigen Ansatz habe.
Das Forum habe ich schon durchsucht, aber irgendwie finde ich da nichts.
Dateiaufbau / Name:
TagesdatumAAA.DTI
TagesdatumBBB.DTI
Tagesdatum = 2017|11|16
neuer Name:
Vortagaaa.dti
VortagBBB.DTI
Also einmal soll das Datum um einen Tag zurückgestellt werden und bei einer Datei ist die Kleinschreibung erforderlich.
Eingebaut werden soll dies unter folgenden Code:
Über Hilfe würde ich mich sehr freuen
Danke und Gruß
Jens (kaiuwe28)
ich hatte gerade schon eine Frage zwecks Dateien kopieren im Forum gestellt und zum Glück auf mal selbst die Antwort gefunden.
Jetzt habe ich wieder eine Änderung, die ich irgendwie nicht hinbekomme und auch noch keinen richtigen Ansatz habe.
Das Forum habe ich schon durchsucht, aber irgendwie finde ich da nichts.
Dateiaufbau / Name:
TagesdatumAAA.DTI
TagesdatumBBB.DTI
Tagesdatum = 2017|11|16
neuer Name:
Vortagaaa.dti
VortagBBB.DTI
Also einmal soll das Datum um einen Tag zurückgestellt werden und bei einer Datei ist die Kleinschreibung erforderlich.
Eingebaut werden soll dies unter folgenden Code:
@echo off & setlocal
set "Ziel=\\Adresse2"
set "Datum=%date%"
for /f "tokens=1-3 delims=." %%a in ("%Datum%") do set "ZielOrdner=%Ziel%\%%c%%b%%a"
md "%Zielordner%" 2>nul
pushd "<\\Adresse1>" ||goto :eof
for /f "delims=" %%a in ('dir /a-d /b /od *TagesdatumAAA.DTI') do set "newestFile=%%a"
for /f "delims=" %%a in ('dir /s /b /a-d "%newestFile%"') do copy "%%a" "%Zielordner%"
popd
@echo off & setlocal
set "Ziel=Adresse3"
set "Datum=%date%"
for /f "tokens=1-3 delims=." %%a in ("%Datum%") do set "ZielOrdner=%Ziel%\%%c%%b%%a"
md "%Zielordner%" 2>nul
pushd "<\\Adresse1>" ||goto :eof
for /f "delims=" %%a in ('dir /a-d /b /od *TagesdatumBBB.DTI') do set "newestFile=%%a"
for /f "delims=" %%a in ('dir /s /b /a-d "%newestFile%"') do copy "%%a" "%Zielordner%"
popd
Über Hilfe würde ich mich sehr freuen
Danke und Gruß
Jens (kaiuwe28)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 355063
Url: https://administrator.de/forum/dateiname-per-batch-auslesen-und-um-eine-stelle-verkleinern-355063.html
Ausgedruckt am: 23.12.2024 um 18:12 Uhr
2 Kommentare
Neuester Kommentar
Nimm doch gleich Powershell. Mit Batch Datum berechnen geht ist aber aufwendig und für so eine Mini-Aufgabe nicht wert...
http://www.robvanderwoude.com/datetimentmath.php
http://www.robvanderwoude.com/datetimentmath.php
$zielordner = "\\Ziel\$((get-date).AddDays(-1).toString('yyyyMMdd'))"
md $zielordner -Force
gci "\\Adresse1\*$(get-date -f 'yyyyMMdd')AAA.DTI" -File | sort LastWriteTime -Desc | select -First 1 | copy-item -Destination "$zielordner\$((get-date).AddDays(-1).toString('yyyyMMdd'))aaa.dti"
gci "\\Adresse1\*$(get-date -f 'yyyyMMdd')BBB.DTI" -File | sort LastWriteTime -Desc | select -First 1 | copy-item -Destination "$zielordner\$((get-date).AddDays(-1).toString('yyyyMMdd'))BBB.DTI"