Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 2889 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Ordner erstellen ll Datei hinein kopieren (1)

Frage von heyalice zum Thema Batch & Shell ...

Microsoft
Sfirm STA Datei automatisch kopieren (1)

Frage von thomasreischer zum Thema Microsoft ...

Batch & Shell
gelöst Datei mit MV verschieben (13)

Frage von ForgottenRealm zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...