ritzratz
Goto Top

Kopieren anhand der ersten 4 Stellen des Dateinamens

Hi,

ich möchte verschiedene Dateien anhand der ersten 4 Buchstaben identifizieren und dann in unterschiedliche Netzlaufwerke speichern. Die Dateinamen heißen z.B.( HAM_12324.csv; BRE_789345.csv, usw.)
Ich habe folgenden Ansatz für die ersten beiden Dateitypen (HAM_, BRE_ ). Das Kopieren haut nicht so hin. Bin kein großer Entwickler, möchte aber gern selber rumtüfteln.

Könnte mir jemand ein paar Tipps geben ?


Option Explicit

Dim fso, Verzeichnis, Datei

' Konstanten definieren   
Const quelle = "C:\temp\test"  
Const ziel = "G:\Skripte\Testdateien"  

' Erstellen des System File Object  
Set fso = CreateObject ("Scripting.FileSystemObject")  

'Prüfen ob Folder existieren, Dateien einlesen und Kopieren   
if fso.FolderExists (quelle)Then
	Set Verzeichnis = fso.GetFolder(quelle)
	MsgBox ("Inhalt von " & quelle)  
	
	For Each Datei in Verzeichnis.Files
		If UCase(Left(Datei.Name, 4)) = "HAM_" OR "BRE_"Then  
			' aktuelle Datei ins Ziellauffwerk kopieren , aber wie ?  
			fso.CopyFile , ziel
		end if 	
	Next	
else msgbox ("Die Quelle ist nicht vorhanden !")  
end if

Danke und Gruß
Michael

Content-ID: 262886

Url: https://administrator.de/contentid/262886

Ausgedruckt am: 25.11.2024 um 15:11 Uhr

bastla
Lösung bastla 09.02.2015, aktualisiert am 10.02.2015 um 00:04:47 Uhr
Goto Top
Hallo Ritzratz!

Ändere die Zeilen 18 bis 21 auf
If UCase(Left(Datei.Name, 4)) = "HAM_" OR UCase(Left(Datei.Name, 4)) = "BRE_" Then Datei.Copy ziel
Grüße
bastla
Ritzratz
Ritzratz 10.02.2015 um 00:04:04 Uhr
Goto Top
Hi Bastla,

Danke für die Antwort.. Hatte gerade das gleiche herausbekommen. Derzeit baue ich die einzelnen Kürzel, (es können 8 sein) in ein case, dann kann ich ein jedem einzelnen Fall ein anderes Ziellaufwerk eingeben.

Danke und Gruss
Michael