älteste Datei aus Verzeichnis kopieren und verschieben (Batch geht, aber wie per VBA??)
Hallo,
im Moment behelfe ich mir mit einer batch Datei um im Verzeichnis nach der ältesten datei zu suchen und diese dann
1. zu kopieren
2. dann zu verschieben
wie kann ich dieses per VBA in Access umsetzen?
im Moment behelfe ich mir mit einer batch Datei um im Verzeichnis nach der ältesten datei zu suchen und diese dann
1. zu kopieren
2. dann zu verschieben
echo=off
SETLOCAL ENABLEDELAYEDEXPANSION
echo j| del "c:\Temp\License Info\*.*"
set pruefung="c:\License Info"
if exist %pruefung%\*.license* (FOR /F %%F IN ('DIR /B /A-D /O-D /TW %pruefung%\*.license*') DO (SET AKTJOB=%%F)
echo !AKTJOB!
copy "c:\License Info\!AKTJOB!" "D:\License Info")
if exist %pruefung%\*.license* (FOR /F %%F IN ('DIR /B /A-D /O-D /TW %pruefung%\*.license*') DO (SET AKTJOB=%%F)
echo !AKTJOB!
move "c:\License Info\!AKTJOB!" "c:\Temp\License Info")
wie kann ich dieses per VBA in Access umsetzen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205724
Url: https://administrator.de/forum/aelteste-datei-aus-verzeichnis-kopieren-und-verschieben-batch-geht-aber-wie-per-vba-205724.html
Ausgedruckt am: 10.04.2025 um 06:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo thomas1972!
Weitgehend ungetestet etwa so:
Hinweise:
Grüße
bastla
Weitgehend ungetestet etwa so:
Sub CopyLicense
Quelle = "C:\License Info"
Typ = "license"
Ziel1 = "D:\License Info"
Ziel2 = "C:\Temp\License Info"
TypL = Len(Typ)
ODate = Date + 1
Set fso = CreateObject("Scripting.FileSystemObject")
For Each File In fso.GetFolder(Quelle).Files
If LCase(Left(fso.GetExtensionName(File.Name), TypL)) = LCase(Typ) Then
If File.DateLastModified < ODate Then
ODate = File.DateLastModified
OFile = File.Path
End If
End If
Next
MsgBox OFile & " wurde zuletzt geändert am " & ODate
If Not fso.FolderExists(Ziel1) Then
If fso.FileExists(Ziel1) Then
MsgBox Ziel1 & " ist kein Ordner!"
Exit Sub
Else
fso.CreateFolder(Ziel1)
End If
End If
If Not fso.FolderExists(Ziel2) Then
If fso.FileExists(Ziel2) Then
MsgBox Ziel2 & " ist kein Ordner!"
Exit Sub
Else
fso.CreateFolder(Ziel2)
End If
End If
fso.CopyFile OFile, Ziel1 & "\", True
Ziel2File = Ziel2 & "\" & fso.GetFile(OFile).Name
If fso.FileExists(Ziel2File) Then fso.DeleteFile(Ziel2File)
fso.MoveFile OFile, Ziel2File
End Sub
- Anstelle des Verschiebens könntest Du auch kopieren und anschließend löschen - damit kann auch auf ein anderes Laufwerk "verschoben" werden.
- Schreibgeschützte Dateien können nicht überschrieben werden.
Grüße
bastla
Hallo thomas1972!
Ok - jetzt weiß ich zwar, weshalb keine Datei gefunden wurde (dass der Dateiname einen Punkt enthält war Deiner anfänglichen Beschreibung nicht zu entnehmen, und die Suche erfolgt in meinem Ansatz oben in der Extension, also zB in ("CACHE_20130427-111554", wo natürlich der Suchbegriff "license" nicht auftaucht), aber nicht klar ist mir, was es mit der ältesten Datei auf sich hat - daher nochmals die Bitte: Liste alle Dateien des Ordners auf und beschreibe dann anhand dieser Auflistung, welche Datei(en) wohin soll(en) ...
Grüße
bastla
Ok - jetzt weiß ich zwar, weshalb keine Datei gefunden wurde (dass der Dateiname einen Punkt enthält war Deiner anfänglichen Beschreibung nicht zu entnehmen, und die Suche erfolgt in meinem Ansatz oben in der Extension, also zB in ("CACHE_20130427-111554", wo natürlich der Suchbegriff "license" nicht auftaucht), aber nicht klar ist mir, was es mit der ältesten Datei auf sich hat - daher nochmals die Bitte: Liste alle Dateien des Ordners auf und beschreibe dann anhand dieser Auflistung, welche Datei(en) wohin soll(en) ...
Grüße
bastla