Neuste Datei aus dem Verzeichnis ermitteln

dinoldo

Cadet 4th Year
Registriert
Juni 2017
Beiträge
104
Hallo Zusammen,

ich habe mit diesem Code per CMD versucht die neuste ZIP-Datei aus einem bestimmten Verzeichnis zu ermitteln. Das funktioniert fast sehr gut.

set Script_Path=%~dp0
set Script_Path=%Script_Path:~0,-1%

REM Neuste Datei
set datei=
for /f "delims=" %%a in ('dir /b /s /a-d /o-d "%Script_Path%\BACKUP\*.zip" 2^>nul') DO @(
if not defined datei set "datei=%%a"
)


Irgendwie wird mit am Ende der Ausgabe noch ein Leerzeichen ausgegeben, somit kann ich die Ausgabedatei in weiterem Verlauf des Scripts nicht benutzen. Was muss ich bitte ändern, damit dies nicht passiert?

Beste Grüße,
Dino
 
Ich benutze folgendes Konstrukt um den letzten Backup-Ordner im Format JJJJ-MM-DD_HH~MM als Referenz zu finden, vielleicht hilft es:
FOR /F "delims= tokens=1" %%A IN ('dir /B /AD /OD "%DstPath%\????-??-??_??~??" 2^>NUL') DO SET LastBackup=%%A
 
Nur der Vollständigkeit wegen:

PowerShell:
$NeuesteZipDatei = Get-Childitem -Path "$Script_Path\BACKUP" -Filter '*.zip' |
Sort-Object LastWriteTime |
Select -First 1

Batch schön und gut, aber man muß dort viele unnötige Verrenkungen machen, um letztlich ganz simple Sachen zu erhalten.
Im Zweifel kann man aber durchaus auch aus Batch heraus sowas wie powershell -file pfad/zur/ps1/datei.ps1 sagen und so sein "Batch-Erlebnis" ein bißchen anreichern.
 
  • Gefällt mir
Reaktionen: dinoldo und NotNerdNotDau
Zurück
Oben