Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

älteste Datei aus Verzeichnis kopieren und verschieben (Batch geht, aber wie per VBA??)

Frage Entwicklung VB for Applications

Mitglied: thomas1972

thomas1972 (Level 1) - Jetzt verbinden

26.04.2013 um 21:55 Uhr, 3017 Aufrufe, 5 Kommentare

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

01.
 
02.
echo=off 
03.
 
04.
SETLOCAL ENABLEDELAYEDEXPANSION 
05.
 
06.
echo j| del "c:\Temp\License Info\*.*" 
07.
 
08.
set pruefung="c:\License Info" 
09.
 
10.
if exist %pruefung%\*.license* (FOR /F %%F IN ('DIR /B /A-D /O-D /TW %pruefung%\*.license*') DO (SET AKTJOB=%%F) 
11.
echo !AKTJOB! 
12.
copy "c:\License Info\!AKTJOB!" "D:\License Info") 
13.
 
14.
 
15.
if exist %pruefung%\*.license* (FOR /F %%F IN ('DIR /B /A-D /O-D /TW %pruefung%\*.license*') DO (SET AKTJOB=%%F) 
16.
echo !AKTJOB! 
17.
move "c:\License Info\!AKTJOB!" "c:\Temp\License Info") 
18.
 
wie kann ich dieses per VBA in Access umsetzen?

Mitglied: bastla
26.04.2013 um 23:30 Uhr
Hallo thomas1972!

Weitgehend ungetestet etwa so:
01.
Sub CopyLicense 
02.
Quelle = "C:\License Info" 
03.
Typ = "license" 
04.
Ziel1 = "D:\License Info" 
05.
Ziel2 = "C:\Temp\License Info" 
06.
 
07.
TypL = Len(Typ) 
08.
ODate = Date + 1 
09.
Set fso = CreateObject("Scripting.FileSystemObject") 
10.
For Each File In fso.GetFolder(Quelle).Files 
11.
    If LCase(Left(fso.GetExtensionName(File.Name), TypL)) = LCase(Typ) Then 
12.
        If File.DateLastModified < ODate Then 
13.
            ODate = File.DateLastModified 
14.
            OFile = File.Path 
15.
        End If 
16.
     End If 
17.
Next 
18.
MsgBox OFile & " wurde zuletzt geändert am " & ODate 
19.
 
20.
If Not fso.FolderExists(Ziel1) Then 
21.
    If fso.FileExists(Ziel1) Then 
22.
        MsgBox Ziel1 & " ist kein Ordner!" 
23.
        Exit Sub 
24.
    Else 
25.
        fso.CreateFolder(Ziel1) 
26.
    End If 
27.
End If 
28.
 
29.
If Not fso.FolderExists(Ziel2) Then 
30.
    If fso.FileExists(Ziel2) Then 
31.
        MsgBox Ziel2 & " ist kein Ordner!" 
32.
        Exit Sub 
33.
    Else 
34.
        fso.CreateFolder(Ziel2) 
35.
    End If 
36.
End If 
37.
 
38.
fso.CopyFile OFile, Ziel1 & "\", True 
39.
Ziel2File = Ziel2 & "\" & fso.GetFile(OFile).Name 
40.
If fso.FileExists(Ziel2File) Then fso.DeleteFile(Ziel2File) 
41.
fso.MoveFile OFile, Ziel2File 
42.
End Sub
Hinweise:
  • 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
Bitte warten ..
Mitglied: thomas1972
27.04.2013 um 16:41 Uhr
Hallo Bastla,

leider funktioniert dieses Script nicht.
Er erkennt zwar bei Zeile 07 den Typ, aber nicht den genauen Dateinamen.

Ziel und Zweck ist es eigentlich in dem Ordner C:\License Info" können mehre Dateien enthalten sein.
Bestimmte haben im Dateinamen License stehen, daher soll entweder wie in deinem Vorschlag die älteste Datei in 2 Verzecihnisse kopiert und dann das org. gelöscht werden
oder eine kopiert und im zweiten Schritt die Datei verschoben werden.

In der MSGBox Zeile 18 erkennt er nicht das File, sondern schreibt nur

Microsoft Access
wurde zuletzt geändert am 28.04.2013
OK

Die eigentliche Datei ist aber von heute.

Vielleicht kannst du nochmal drüber schauen.

Danke, wünsche ein schönes Wochenende.
Bitte warten ..
Mitglied: bastla
27.04.2013 um 16:48 Uhr
Hallo thomas1972!
Bestimmte haben im Dateinamen License stehen
In Deinem Batch oben wird nach Dateien gesucht, in deren Typ "license" enthalten ist ...

Magst du vielleicht das Ergebnis eines
dir "C:\License Info"
posten und dazu angeben, welche Datei konkret gemeint wäre?

Grüße
bastla
Bitte warten ..
Mitglied: thomas1972
27.04.2013, aktualisiert um 17:06 Uhr
Die Dateien haben folgenden namen

K00VZF.LICENSE.CACHE_20130427-111554
K00VZF.LICENSE.INFO_20130427-111554
K00VZF.INFO.XML_20130416-1116171

wobei _20130427-111554 immer ein Zeitstempel darstellt.

ich benötige die Cache Datei an 2 verschiedenen orten,
sowie die Info
aber auch die XML
um 1. diese zu Archivieren, aber dann weiter zu entpacken

Wollte das Scrippt 3x erstellen und jeweils nur die Dateinamen sowie Pfade Ziel 1 & 2 anpassen
Bitte warten ..
Mitglied: bastla
27.04.2013 um 21:30 Uhr
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
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateien verschieben die älter sind wie 1 Tag (3)

Frage von pblacky zum Thema Batch & Shell ...

Entwicklung
gelöst Verzeichnise sichern mit batch datei (Win10) (13)

Frage von Limbach zum Thema Entwicklung ...

Windows Server
gelöst FSRM Server 2012 R2 ältere Dateien verschieben (5)

Frage von TECHGENE zum Thema Windows Server ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Infineon TPMs unsicher! Bitlocker ggf. angreifbar

(2)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Firewall

PfSense Repository für Version 2.3.x

(4)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(8)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Heiß diskutierte Inhalte
Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (37)

Frage von 134537 zum Thema Microsoft Office ...

Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...