PDA

Vollständige Version anzeigen : Ein paar VBS-Fragen...


Bibabuzzel
23.03.2006, 17:58
Hallo zusammen.

Ich fange grade erst an, etwas mit VBS zu machen. In VBA hab ich schon was gemacht, aber VBS ist dann doch etwas anderes...
Hier mal ein paar Fragen:
1. Ich will per VBS nach einer bestimmten Datei suchen (Pfadangabe+Dateiname stehen in einer Variablen) und je nach dem ob die Datei gefunden wird oder nicht unterschiedliche Aktionen ausführen.
2. Ich muss nach verschiedenen Dateien suchen. Pfandangaben+Dateinamen stehen untereinander in einer txt-Datei. Sprich TXT-Datei öffnen, Erste zeile einlesen, Platte prüfen ob Datei vorhanden, Ereignis auslösen, zweite Zeile lesen, usw. bis zum Ende des TXT-Files.
3. Jedesmal, wenn unter Punkt 2 eine Datei gefunden wird, soll in einer anderen TXT-Datei ein Eintag erzeugt werden. Dabei sollte der bisherige Inhalt der TXT-Datei erhalten bleiben.

So, das ist das wenige was ich vorhabe... :-)
Könnt ihr mir da helfen? Wer hat gute Quellen und Infos für VBS?
Habe schon unter vb@rchiv.net geschaut, aber da steht fast nix was ich für VBS verwenden kann.
Der einzigen Editor, den ich habe, um Scripte zu erstellen, nennt sich Notepad... :-(

Beschissene Rahmenbedingungen, trotzdem hoffe ich auf eure Hilfe!

Joachim Hofmann
24.03.2006, 11:46
Hallo Bibabuzzel,

da Du ja offensichtlich tief einsteigen willst, empfehle ich mittelfristig ein echtes Buch zu kaufen.
Ich habe mit dem Buch von Günter Born viel gelernt, ich weiß nicht, ob das noch erhältlich ist.
Inside Microsoft Windows Script Host

Inside Windows Script Host - 3. Auflage
Windows Script Host für Power-User, Programmierer und AdministratorenAutor Günter Born
Seiten 857
Disk 1 CD
Bereich Programmierung
Published 5.2002
ISBN 3-86063-673-1
Preis 44,90 Euro

Editoren gibts wie Sand am Meer in allen Arten und Preislagen. Eine gute Freeware mit Syntax Higligthling ist Proton.
http://www.meybohm.de/

~~~dexter~~~
24.03.2006, 12:15
@Bibabuzzel

So sollte es funktionieren:


Option Explicit

Const DATEINAME = "C:\Suchen.txt"
Const LOGNAME = "C:\Gefunden.log"
Dim FSO, DateiInhalt, LogInhalt

Set FSO = CreateObject("Scripting.FileSystemObject")
Set DateiInhalt = FSO.OpenTextFile(DATEINAME, 1)
Set LogInhalt = FSO.OpenTextFile(LOGNAME, 2)

Do Until DateiInhalt.AtEndOfStream
Zeile = DateiInhalt.ReadLine + vbcrlf
If FSO.FileExists(Zeile) Then
LogInhalt.WriteLine Zeile & " gefunden!"
End If
Loop

LogInhalt.Close
DateiInhalt.Close


~~~Dexter~~~

Bibabuzzel
24.03.2006, 16:14
@Joachim
Danke für die Buchempfehlung

@dexter
Danke für den Code
Hatte schon in der Richtung angefangen, dank deiner Hilfe bin ich fertig mit meinem kleinen Script.

Maxus
18.04.2006, 09:23
also ich habe mir auch mehrere scipt editoren angeschaut und finde den systemscripter und vbsedit am besten. als buch würde ich das ich inside windows scripting host kenne auch Scripting für admins ebenfalls von ms press empfehlen

Stormy
26.01.2012, 12:38
Hi Leute
Dank eurem Tread bin ich zwar auf die Idee gekommen wie ich die Aufgabe lösen kann die ich will aber trotzdem will es nicht ganz hinhauen.
Eigentlich ist es einfach:
Ich habe eine Liste von Servern in einer Txt Datei, auf denen muss ich allen überprüfen ob eine bestimmte datei vorhanden ist also mit einem Bestimmten Pfad auf dem Server der bei alles jedoch gleich ist. wenn die datei vorhanden ist will ich in ein anderes File den Serverpfad kopieren welcher in der vorhin genannte txt datei ist und hintendran schreiben : vorhanden!
wenn die datei nicht vorhanden ist soll auch nicht vorhanden stehen.
was ich bis jetz mir überlegt habe (Ich weiss ist nicht gerade toll aber bin ja am lernen) sieht wie folgt aus funktioniert leidr nur nich:

Option Explicit

Const DATEINAME = "C:\DServer\DServer.txt"
Const LOGNAME = "C:\DServer\Gefunden.log"
Dim FSO, DateiInhalt, LogInhalt, Zeile , Zusatz As String

Set Zusatz = "\PRODRW\INSTREP2\BACKUP"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set DateiInhalt = FSO.OpenTextFile(DATEINAME, 1)
Set LogInhalt = FSO.OpenTextFile(LOGNAME, 1)

Do Until DateiInhalt.AtEndOfStream
Zeile = DateiInhalt.ReadLine + Zusatz + vbcrlf
if Server="******AP" or Server="" or Server = "******EU" or Server="******LA" or Server="******JP" or Server ="******NA" or Server="******NN" or Server="******NN" or Server="******FA" then
vbcrlf
End If
If FSO.FileExists("INSTREXP__01_2012.LOG") Then
LogInhalt.WriteLine Zeile & " gefunden!"
End If
Loop

LogInhalt.Close
DateiInhalt.Close

den zusätzlichen Pfad zum server habe ich als string hinzufügen wollen um es bei jedem server in der txt anzufügen. geht aber leidr nicht
die txt datei mit den server ist unterteil nach gebiet durch diese "******NN" darum habe ich eine if schleife drin welche diese überspringen sollte was aber irgendwie auch nicht geht.
bin langsam am verzweifeln und in anderen Foren wurde ich nur böse angemacht.
Ich hoffe Ihr wisst mir da zu helfen.

Gruss und danke