rainerzufall
Goto Top

vbs scripting um Daten zu kopieren

hiho,

da ich ein "Scriptn00b" bin habe ich mal eine Frage an die Community.
Ich benötige ein .vbs Skript welches folgendes für mich erledigt.

Es soll in einen bestimmten Pfad schauen ob ein Ordner vorhanden ist:
"c:\Programme\Test" wenn der Ordner nicht dort liegt, soll er Ihn von einer Freigabe im Netz kopieren "\\Server\Freigabe\Test"
anschliessend einfach noch einmal überprüfen und wenn der Ordner (+Inhalt) dort nun liegt das Skript einfach beenden.

Für einen Scripter sicher kein Thema, aber ich wurschtel da schon seit Tagen dran rum.

Ein grosses Danke vorweg!

Gruss
RZ

Content-Key: 21797

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

Printed on: April 19, 2024 at 12:04 o'clock

Mitglied: 21258
21258 Dec 16, 2005 at 19:25:03 (UTC)
Goto Top
muss es vbs sein?
Member: RainerZufall
RainerZufall Dec 16, 2005 at 20:07:48 (UTC)
Goto Top
hmm... muss nicht unbedingt, dachte nur es wäre schöner ;)
Member: RainerZufall
RainerZufall Dec 16, 2005 at 23:25:30 (UTC)
Goto Top
ok habs selber hinbekommen, für alle die auch das Problem haben.

_________________

Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists("C:\Folder") Then
Set objFolder = objFSO.GetFolder("C:\Folder")
Else
Wscript.Echo "Ordner nicht da, er wird kopiert."

Const OverWriteFiles = TRUE

Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.CopyFolder "\\192.168.255.1\Folder" , "C:\Folder" , OverWriteFiles

End If
_____________________


so einfach ist es, wenn man nur weiss wie face-smile

in diesem Sinne,
schönen Tag noch
Member: gemini
gemini Dec 17, 2005 at 00:18:59 (UTC)
Goto Top
Hallo Rainer,

Glückwunsch, das sieht ja schon gut aus
Und selbstgemachtes erfüllt einen doch auch mit Stolz.

Eine kleine, wie ich hoffe konstruktive, Manöverkritik:
Den zweiten Set objFSO-String kannst du dir sparen, das FileSystemObject wurde 9 Zeilen vorher bereits erstellt. Doppelt genäht hält hier nicht besser face-wink

Nachdem FolderExists in Zeile 3 bereits FALSE zurückgegeben hat ist es eigentlich nicht nötig den Ordner mit OverWriteFiles zu kopieren

Ein paar Tipps und Empfehlungen:
Option Explicit in der ersten Zeile erzwingt Variablendeklaration. Dadurch wird das Script zwar umfangreicher, es schützt aber vor Fehlern durch falsch geschriebene Variablen, bspw. obiFSO statt objFSO. Nach solchen Fehlern kann man durchaus geraume Zeit suchen.

Werte, die sich ändern können weist man am besten Variablen zu. Bsp. wenn sich C:\Folder in deinem Script mal nach c:\Ordner ändert, musst du das an 3 Stellen in deinem Script nachführen. In umfangreicheren Scripten artet das leicht zu Arbeit aus.

Wertezuweisung an Variablen und Konstanten am Anfang des Scriptes schaffen Übersicht.

In etwa so:
~~~~~~~~~~~~~~~~~~~~~~
Option Explicit
Dim objFSO, objFolder, strSrcFld, strDstFld

strSrcFld = "\\192.168.255.1\Folder"
strDstFld = "C:\Folder"
Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FolderExists(strDstFld) Then
   Set objFolder = objFSO.GetFolder(strDstFld)
Else
   WScript.Echo "Ordner nicht da, er wird kopiert."
   objFSO.CopyFolder strSrcFld, strDstFld
End If
~~~~~~~~~~~~~~~~~~~~~~

Falls du dich intensiver mit Scripting beschäftigen darfst | musst | willst, kannst du im Script Center jede Menge Infos bekommen.
Mind. ebenso interessant ist die Seite von Guy Thomas http://www.computerperformance.co.uk/

Gruß
gemini
Member: Biber
Biber Dec 17, 2005 at 00:41:30 (UTC)
Goto Top
@gemini
... und das mit dem "Set objFSO = Nothing" am Ende erzählst Du ihm nicht? Ich finde, das sollte man/frau sich so früh wie möglich angewöhnen... face-wink

@RainerZufall
Das eben scherzhaft geschriebene gehört IMHO wirklich zum A & O auch der objekt-orientierten Programmierung - wenn irgendwo Objekte "erzeugt" werden wie oben im Beispiel mit CreateObject(...), dann müssen/sollten die auch vom dafür verantwortlichen wieder "zerstört" werden.
Denn die Annahme, dass in einer Multiprocessing/Multi-Thread-Welt nicht mehr benötigte Objekte irgendwann von einer höheren Instanz entfernt werden.. vergiss es.
Ich erinnere an gewisse Betriebssysteme, die sich den Hauptspeicher zumüllen mit nicht benötigten DLLs, beendeten Services und Prozessen, an fragmentierte Speicherblöcke usw. Von daher ein sinnvoller kleiner Beitrag zum Umweltschutz und zur Ressourcen-Einsparnis:
wenigstens alle Objekte (meist erkennbar daran, dass Du sie mit "Set objxxxx=..." einführst) nach Benutzung wieder mit "set objxxxx....= Nothing" entsorgen.

Grüße und auch viel Spaß weiterhin beim Skripten
Biber
Member: gemini
gemini Dec 17, 2005 at 08:03:35 (UTC)
Goto Top
@Biber
Hast datürlich Recht, ich verspreche Besserung!!!
Über die Weihnachtsfeiertage hab ich ja Zeit, da werd ich dann alle Skripten Korrektur lesen face-wink
Member: RainerZufall
RainerZufall Dec 18, 2005 at 01:35:39 (UTC)
Goto Top
..*neid*..
ok ich sehe es gibt noch viel zu tun ... warten wir es ab zählt hier wohl nicht, wie ? face-smile
Aber danke für die Tipps, da Scripting für mich absolutes Neuland ist bin ich für Anregungen oder gar Tipps Dankbar ... es gibt ja auch zahlreiche Nachschlagewerke was Scripting angeht ... vielleicht habt ihr da ja auch noch was auf Lager *g*
Member: gemini
gemini Dec 18, 2005 at 11:38:21 (UTC)
Goto Top
Sehr gute Infoquellen sind imho:
MS ScriptCenter http://www.microsoft.com/technet/scriptcenter/default.mspx
Guy Thomas' Seite http://www.computerperformance.co.uk/
Rob van der Woud's Scripting Pages http://www.robvanderwoude.com/index.html

Auf http://www.admini.de/index.htm findest du auch Infos und Beispielscripte, ist aber eher batchlastig (was keinesfalls negativ gemeint ist!).

Und auch noch ein Forum http://www.systemscript.com/forumde/

Es gibt sicher noch jede Menge anderer, evtl. auch besserer, Quellen.
Solche tun sich meist bei der Suche nach einer spezifischen Problemlösung auf.

An Literatur-Hardware find ich Windows Scripting von Holger Schwichtenberg ganz gut
http://www.amazon.de/exec/obidos/ASIN/3827321964/qid=1134905582/sr=8-4/ ...
Ob das allerdings geeignet ist, Spaß daran zu finden, weiß ich nicht.

Gruß
gemini
Member: Biber
Biber Dec 18, 2005 at 13:08:06 (UTC)
Goto Top
Moin RainerZufall,

ergänzend zu dem, was gemini oben als erste Links gepostet hat:
Als ich das erste Mal den M$-Scriptcenter-Links gefolgt bin, fand ich es alles andere als Appetit machend - quietschbunte, marktschreierische Seiten geschrieben von Codern, die ihren Fachslang für normale Umgangssprache halten. Das war so mein erster Eindruck.

Wenn Du den ersten Ekel niederkämpfst und ein bisschen gutwillig nach links und rechts klickst, stolperst Du über richtig nützliche Utilities, bei denen mein absoluter Newbie-Favorit die so genannten "TechNet Script Center Sample Scripts" sind (unter diesem Begriff zu finden).

Dahinter verbirgt sich eine zum Download angebotene 1,5 MB kleine "script_center.chm", die ziemlich alle Beispiele von den M$-Skriptcenter-Seiten enthält...sauber in Kategorien unterteilt und mit einer Angabe, unter welchen M$-Betriebssystemen diese laufen könnten.
Sehr brauchbar (bis auf die Tatsache, dass M$ weder im Beispielcode noch im ausgelieferten Produktiv-Code jemals Tippfehler korrigiert).
Der Link zum Download TechNet Script Center Sample Scripts (*.chm-Datei).

Bedauernswert bei diesem Skripting-Thema ist leider die "politische" Ausrichtung von M$... weitgehend wird suggeriert, dass Skripting VB-nah sein muss.. näher an VB oder .NET - der ursprünglich gleichwertige Ansatz mit JScript (*.js) wird extrem vernachlässigt. Das schlägt sich auch in Foren wie unserem nieder. Die meisten Skript-Beispiele hier sind als *.vbs und nur sehr wenige als *.js realisiert.

Grüße Biber
Member: RainerZufall
RainerZufall Dec 18, 2005 at 13:56:50 (UTC)
Goto Top
Danke für die hilfreichen Tipps, da werde ich doch mal wieder wirklich was zu lesen haben *g*
Habt ihr auch Erfahrungen mit Scripting Tools gesammael ?

Beispiel: PrimalScript

Die einem bei "typischen" Fehler aushelfen und das Verständniss fördern?
Oder macht ihr das noch like "oldSchool" Texteditor auf und los gehts.
Das würde mich noch interessieren,

Danke und schönes Wochenende noch.

RZ
Member: Biber
Biber Dec 18, 2005 at 14:18:42 (UTC)
Goto Top
Ist sicherlich eine persönliche Geschmacksfrage - bei Batch und Skripting arbeite ich meistens wirklich mit Texteditoren und ohne IDE und Generatoren. Aber zumindest nicht mit den ganz albernen Praktikanten-Editoren wie NotePad oder ähnlichem Unsinn, sondern schon mit irgendetwas, was zumindest Syntax-Highlightning und Blöcke-Einrücken unterstützt ( z.B TextPad, UltraEdit, PFE).

Bei den Scripting-Tools (oder anderen IDE's)... es kommt immer darauf an, wie das Verhältnis von "nützlichen Ratschlägen" und "nervigen Hinweisen" ausgestaltet ist - mein absolutes Negativ-Beispiel für nervige Hinweise wären diese VBA-Editoren unter Access oder Excel - die halten mich in der Regel nur auf beim Tippen.

Kurzgefasst - es gibt vermutlich wie überall in unserer binären Welt nicht nur Nullen und Einsen, kein Entweder/Oder, sondern immer nur einen individuellen Königsweg irgendwo dazwischen. Jedes Tool, mit dem das Coden Spaß macht, ist ein Gutes. Aber nicht jedes, mit dem es mir Spaß macht, ist gut für alle et vice versa.

So, jetzt haben wir diesen Thread aber endgültig ganz aus der Bahn geworfen.. face-wink

Frank / der Biber aus Bremen