sn00ze
Goto Top

Dateisuche und Copy VBS

Hallo,

ich habe mal wieder ein kleines VBS newbie Problem ;).

Ich habe bereits ein Script geschrieben welches aus einer textdateien einen wert ausliest. Nun will ich weiter das danach auf Datei ebene gesucht wird. Also ich habe ein Ordnern mit vielen unterordnern und darin muss sich eine Datei befinden so so heißt wie der ausgelesene wert. Desweiteren will ich wenn die Datei gefunden wurde dies woanders hin kopieren.

Da ist sicher recht einfach aber irgendwie bekomme ich das nicht, ist mein erstes Script und so richtig durch gestiegen bin ich da noch nicht face-sad.

Wäre schön wenn ihr mir weiterhelfen könntet.

MFG
Andy

Content-Key: 77520

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

Printed on: April 25, 2024 at 06:04 o'clock

Member: bastla
bastla Jan 08, 2008 at 21:13:47 (UTC)
Goto Top
Hallo sn00ze!

Haben die vielen Unterordner Deines Ordners auch wieder Unterordner?
Kann es die gesuchte Datei auch mehrmals geben, und wenn ja, was dann?
Genügt es Dir schon, wenn die gefundene Datei "woanders" hin kopiert wird, oder hast Du ein bestimmtes Ziel im Auge?

Grüße
bastla
Member: sn00ze
sn00ze Jan 09, 2008 at 05:15:23 (UTC)
Goto Top
Hallo bastla,

ja die Unterordner meines Ordners haben auch wieder Unterordner! Die gesuchte Datei kann es nicht mehrmals geben es könnte vllt. vorkommen das diese nicht existiert. Die Datei muss dann an ein bestimmtes Ziel kopiert werden.

Vielen Danke für deine Hilfe

MFG
sn00ze
Member: bastla
bastla Jan 09, 2008 at 12:07:18 (UTC)
Goto Top
Hallo sn00ze!

Analog zu diesem Script könnte das etwa so aussehen:
Const QuellOrdner = "D:\Ordner mit vielen Unterordnern\"  
Const ZielOrdner = "D:\Bestimmtes Ziel\"  

DateiName = "Aus Textdatei erfolgreich ausgelesener Wert"  

Set fso = CreateObject("Scripting.FileSystemObject")  
DateiPfad = ""  

FindFile fso.GetFolder(QuellOrdner)

If DateiPfad = "" Then  
	WScript.Echo DateiName & " nicht gefunden!"  
	WScript.Quit
End If

fso.CopyFile DateiPfad, ZielOrdner


Sub FindFile(ThisFolder)
    For Each File In ThisFolder.Files
		If StrComp(File.Name, DateiName, vbTextCompare) = 0 Then
			DateiPfad = File.Path
			Exit For
		End If
	Next
	For Each Folder In fso.GetFolder(ThisFolder).SubFolders
		If DateiPfad = "" Then FindFile Folder  
	Next
End Sub

Grüße
bastla
Member: sn00ze
sn00ze Jan 15, 2008 at 06:57:57 (UTC)
Goto Top
Danke schön, habe das nun noch ein wenig angepasst es läuft bisher ganz gut face-smile
MFG
Andy