koluschkib
Goto Top

OrdnerInhalt per VBS in frei definierbaren Ordner kopieren

Morgen Admins, häng mal wieder fest

Ich bin dabei ein Script zu schrieben, was ermöglich einen freidefinierbaren Ordnerinhalt in einen anderen (freidefinierbaren) Ordner zu kopieren, im anschluss wird der neu angelegte ordner im netzwerk freigegeben
Aber leider scheitert es, daran das der Inhalt nicht kopiert wird, kriege Syntaxerror, was daraus schließen lässt dass der befehlt denn ich gefunden habe und verwende falsch ist.

vielleicht hat einer von euch ne lösung für das problem. schaut mal denn Quelltext mal an, vielleicht erkennt ihr irgendwelche anderen fehler dazu. für lösungsvorschläge und ggf. verbesserungsvorschläge stehe ich offen gegenüber

'Variablen werden deklariert  
dim fd, fs, a, x, f1
'Benötigte Objekte für die Netzwerkfreigabe  
dim objFSO, objWMIService, objNewShare

'Objekt für die Überprüfung, ob Ordner Existiert  
set fd = CreateObject("Scripting.FileSystemObject")  

'Eingabebox Quellverzeichnis  
x = inputbox("Gib Quellverzeichniss an! bsp. c:\bla")  
'Wenn Datei nicht Existiert dann MsgBox mit hinweis!  
if not fd.folderexists (""& x) Then  
Yantwort = msgbox ("Die Ordner Existiert nicht!", vbOkCancel + vbQuestion, "Was tun?")  
	
	'Wenn Antwort Ok, dann Quellverzeichnis Neueingabe  
	if Yantwort = vbOK Then
	x = inputbox("Gib Quellverzeichniss an! bsp. c:\bla")  
	End If
	
'Einagabebox Zielverzeichnis  
a = inputbox("Gib den Namen des Ordners an!")  

'Objekte werden erstellt  
set fs = CreateObject("Scripting.FileSystemObject")  
'Variable der zu kopierenden Datei  
Set CF = CreateObject("Scripting.FileSystemObject")  
'Objekt zum löschen des vorhandenen Ordners  
Set objFSO = CreateObject("Scripting.FileSystemObject")  

'Wenn abfrage, wenn der Ordner existiert, wie vorgehen  
	if fs.folderexists ("d:\"& a) Then  
	antwort = MsgBox("Der Ordner """ &a& """ Existiert bereits!" & vbCR & VbCR &_  
	"Ja = Vorhandenen Ordner Löschen und neuen anlegen!" & vbCR & vbCR &_  
	"Nein = Weiter Möglichkeiten!" & vbCR & vbCR & _  
	"Abbrechen = Is klar, ne?!", vbYesNoCancel + vbQuestion, "Was tun?")  
	
	'Wenn Abfrage, wenn Antwort "JA", dann alten Ordner löschen, Neuen erstellen und Daten kopieren  
		if antwort = vbYes Then
		objFSO.DeleteFolder("d:\" & a)  
		fs.createfolder("d:\" & a)  
		CF.CopyFile ""&x, "d:\" & a & "\"  
		msgbox "Alter Ordner weg, Neuer Ordner """ &a& """ da incl. Dateien und im Netz freigeben!"  
		'Wenn "NEIN", dann weiter Möglichkietn. Namen neu eingeben, In bestehenden Ordner alles Kopieren  
		elseif antwort = vbNo Then
		Xantwort = msgbox("Abbrechen = Is klar, ne?!"& vbCR & vbCR & _  
		"Wiederholen = Zurück zur Inputbox und neuen Namen angeben" & vbCR & vbCR & _  
		"Ignorieren = Namenseingabe Ignorieren und Daten ins bestehenden Verzeichnis kopieren und im Netz freigeben", _  
		vbAbortRetryIgnore + vbExclamation, "Was nun?")  
		End If
			
			'Wenn Abfrage bei weiteren Möglichkeiten. Wenn "JA", neuen Namen für Ordner eingeben, Ordner erstellen und Daten kopieren  
			if Xantwort = vbRetry Then
			a = inputbox("Gebe den Namen des Ordners an!")  
			fs.createfolder("d:\" & a)  
			CF.CopyFile ""&x, "d:\" & a & "\"  
			msgbox "Der neue Ordner """ &a& """ wurde angelegt und Dateien kopiert und im Netz freigeben!"  
			'Bei "NEIN", Daten in vorhanden Ordner rein Kopieren  
			elseif Xantwort = vbIgnore Then
			CF.CopyFile ""&x, "d:\" & a & "\"  
			msgbox "Dateien wurden in den vorhandenen Ordner """ &a& """ kopiert und im Netz freigeben!"  
			End If

'Wenn Ordner nicht Vorhanden, Neuen erstellen und Daten Kopieren  
else
fs.createfolder("d:\" & a)  
CF.CopyFile ""&x, "d:\" & a & "\"  
msgbox "Der Ordner """ &a& """ wurde angelegt und Dateien kopiert und im Netz freigeben!"  

End If

'Konstanten für Netzwerkfreigabe, zulässige gleichzeitige Zugriffe  
Const FILE_SHARE = 0
Const MAXIMUM_CONNECTIONS = 25

'Name des PC wird aus der Registry rausgelesen  
strComputer = "."  

'Verbidnung mit WMI wird hergestellt  
Set objWMIService = GetObject("winmgmts:" _  
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  

'Ordner wird freigegeben, Freigabe name, ist der Ordnername, Kommentar "Meine Freigabe" wird in Eigenschaften eingetragen  
Set objNewShare = objWMIService.Get("Win32_Share")  
errReturn = objNewShare.Create _
    ("d:\"& a, ""& a,  FILE_SHARE, _  
        MAXIMUM_CONNECTIONS, "Meine Freigabe")  

End If

hoffe einer von euch kann mir weiter helfen

gruß

koluschki

Content-Key: 142378

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

Printed on: April 18, 2024 at 20:04 o'clock

Member: koluschkiB
koluschkiB May 07, 2010 at 09:08:33 (UTC)
Goto Top
hab eben noch festgestellt, dass irgendwo ein fehler ist. wenn man nämlich das quellverzeichniss angibt (was auch existirt) stopt das script und macht nichts mehr. wenn man aber einen falsches verzeichniss angibt, kommt der hinweis quelle existiert nicht, inputbox öffnet sich erneut, neueingabe des quellverzeichniss und anschließend öffnet sich die inputbox Zielverzeichniss, was bei der richtigen Quell eingabe, gar nicht kam

hoffe jemand kann mir helfen

gruß

koluschki
Member: dave114
dave114 May 07, 2010 at 09:53:02 (UTC)
Goto Top
morgen,

deinem Kommentar zu entnehemen ist das Thema anscheinend noch nicht gelöst?

Warum denn der Hacken?

mfg
David
Member: koluschkiB
koluschkiB May 07, 2010 at 10:55:20 (UTC)
Goto Top
weil die probs die ich hier erfragt habe, ich selbst gelöst habe.
sogar eindige fehler mehr entdeckt, wie zb das nur dateien kopiert wurde und nicht ordner und unterordner. problem gelöst.
hänge jetzt aber an einem anderem problem

hab nen neuen beitrag erstellt

danke

gruß

koluschki