M4tRiX Geschrieben 12. März 2009 Autor Geschrieben 12. März 2009 z.B. könnte das drin stehen: "C:\temp\test.xml" Jedoch wechselt sich der Pfad bei jedem Durchlauf. deshalb muss ich eine variable benutzen. Zitieren
Klotzkopp Geschrieben 12. März 2009 Geschrieben 12. März 2009 z.B. könnte das drin stehen: "C:\temp\test.xml"Ich möchte aber nicht wissen, was drin stehen könnte, sondern was konkret, tatsächlich und wirklich drinsteht, wenn dieser Fehler auftritt. Du kannst ja zum Testen den Debugger bemühen oder eine Messagebox einbauen. Zitieren
Eratum Geschrieben 12. März 2009 Geschrieben 12. März 2009 Hast du dieses ominöse "" & mal versucht wegzulassen? (obwohl das mMn. völlig irrelevant sien sollte, weil so wie's da steht passiert an der Stelle gar nichts, aber vlt verschluckt er sich ja doch daran) Zitieren
M4tRiX Geschrieben 12. März 2009 Autor Geschrieben 12. März 2009 So konnte es lösen. musste nur statt objFile.Name objFile.Path verwenden.. Weil in dem anderen war halt nur der name und deshalb wurde er nicht gefunden. xmlDoc.Load(""& objFile.Path) So funktioniert es jetzt! Nur es kommt nun immer eine leere MSGBOx, kann man das irgendwie ausschalten? Weil das ist ganz schön nervig. Vorallem weil das Script auf einem Server laufen soll und dort nicht immer jemand sitzt und [OK] drückt... Zitieren
Eratum Geschrieben 12. März 2009 Geschrieben 12. März 2009 Rufst du denn rigendwo eine Messagebox auf? Ansonsten sollte da keine kommen ^^ Zitieren
M4tRiX Geschrieben 12. März 2009 Autor Geschrieben 12. März 2009 nee.. eigentlich nicht.^^ naja daran kann ich mich später noch kümmern. das ist weniger dramatisch... problematischer ist es, das ich gerade versucht habe den dateiname zu splitten um diesen dann zu verschieben. 'Datei kan z.b. a_0000 oder b_000 sein, deshalb dieser split, aber _ wird alles getrennt arHelp = split(objFile.Name, "_") 'Um aber den Dateityp zu behalten wird am Ende wieder .xml dran gehängt also heißt jetzt die Datei entweder a.xml oder b.xml [COLOR="Red"]strFile = arHelp & ".xml"[/COLOR] objFSO.MoveFile objFile.Path , cDestination & "\" & strFile Fehler: typen unverträglich (rot markiert die Zeile) code: 800A000D Zitieren
Eratum Geschrieben 12. März 2009 Geschrieben 12. März 2009 Schau dir mal bitte den split-Befehl aufmerksam an (z.B. bei asphelper.de - Startseite) und gib dann ncohmal laut wenn du deinen Fehler nicht findest :-) Zitieren
M4tRiX Geschrieben 12. März 2009 Autor Geschrieben 12. März 2009 oh man wie klein doch die Fehler sein können^^...:upps naja für die "nachwelt";) arrHelp = Split(objFile.Name, "_") strFile = arrHelp(0) & ".xml" so funktioniert es... Aber das mit der Messagebox ist immer noch ^^ Zitieren
Eratum Geschrieben 12. März 2009 Geschrieben 12. März 2009 Ich weiss ja nicht wie lang dein Skript ist, aber klammere doch mal suxesive Bereiche im Skript aus, in dem du entweder selbst eine betextete MsgBox einfügst oder die halt auskommentierst, solang bist du die Zeile gefunden hast in der, dein Skript der Meinung ist eine MsgBox werfen zu müssen ^^ Zitieren
M4tRiX Geschrieben 12. März 2009 Autor Geschrieben 12. März 2009 sooo.. habs gefunden. war diese Zeile WScript.Echo objShtCut.TargetPath puuh.^^ Ist es theoretisch möglich, zu gucken wie lang die Datei nun in diesem Ordner liegt? und wenn die Datei nicht mehr vorhanden ist. das Script neu starten? Zitieren
Eratum Geschrieben 12. März 2009 Geschrieben 12. März 2009 Die Frage mit dem wie lange Sie dort liegt, verstehe ich nicht ganz. Aber wenn du es so meinst, wie ich denke, dass du es meinst dann brauchst du etwas, dass dir anzeigt wann die Datei ERSTELLT oder das letzte mal GEÄNDERT wurde. Aus diesem und dem aktuellen Datum kann man eine DATUMSDIFFERENZ bilden :-) Und ansonsten musst du halt schauen ob die Datei EXISTIERT... MfG Erratum P.s.: (ich hab dir die befehle faktisch schon hingeschrieben, jedoch ist vbs auf englisch...aber ne kurze Googelei sollte dir weiterhelfen und wenn nich...Dann hassu ja schon übung im Posten ^^) Zitieren
M4tRiX Geschrieben 13. März 2009 Autor Geschrieben 13. März 2009 ...und wenn nich...Dann hassu ja schon übung im Posten ^^) hört sich bissle hart an xD^^:hells::hells: naja.. die Frage hat sich soeben erledigt. Aber könntet ihr mir vielleicht erklären woran das liegt, das eine Funktion 2 Mal ausgeführt wird? Zu meinem Problem. Ich will EINE E-mail verschicken. Aber das programm verschickt ZWEI Stück. Und auch der Virenscanner wird ZWEIMAL an- und ausgeschalten. Ich denke mir das es an folgenden Zeilen liegt: Set objFolder = objFSO.GetFolder(cSource) Set colFiles = objFolder.Files For Each objFile in colFiles und dann gaaaanz am ende Next Dieses Next muss in den Code da sonst ein Fehler auftaucht.. Wisst ihr wie ich das Umgehen kann? Zitieren
Eratum Geschrieben 13. März 2009 Geschrieben 13. März 2009 War nich hart gemeint :-) Wenn ich das richtig verstanden habe, startest du die For Each Schleife am Anfang des Skript und gibst erst am Ende den next Befehl durch? Nehmen wir mal auseinander was du da tust: Set objFolder = objFSO.GetFolder(cSource) Du öffnest für den gewünschten Ordner ein FSO Set colFiles = objFolder.Files Du liest die Dateien aus dem Ordner ein For Each objFile in colFiles Du startest für JEDE Datei in dem Ordner die Schleife. Vlt solltest du einfach mal checken wie viele Dateien sich in dem Ordner befinden? 1 Datei => ein durchlauf, 2 Dateien => 2 Durchläufe...usw.usf... MfG Erratum Zitieren
Klotzkopp Geschrieben 13. März 2009 Geschrieben 13. März 2009 Aber könntet ihr mir vielleicht erklären woran das liegt, das eine Funktion 2 Mal ausgeführt wird?Daran, dass du sie zweimal aufrufst. Zu meinem Problem. Ich will EINE E-mail verschicken. Aber das programm verschickt ZWEI Stück. Und auch der Virenscanner wird ZWEIMAL an- und ausgeschalten. Dann hast du einen Logikfehler in deinem Programm. Ich denke mir das es an folgenden Zeilen liegt:Willst du alle Dateien durchsuchen? Dann brauchst du diese Zeilen. Wisst ihr wie ich das Umgehen kann?Ruf die Funktion nicht zweimal auf. Zitieren
M4tRiX Geschrieben 13. März 2009 Autor Geschrieben 13. März 2009 Achso okay.. Ja es kommt immer drauf an... manchmal liegt eine Datei drin nach der e-mail wird diese gelöscht und manchmal 2.. Wie kann ich es nun verändern das auch alle Dateien durchsucht werden aber nicht jedes mal die schleife gestartet wird? Zitieren
Eratum Geschrieben 13. März 2009 Geschrieben 13. März 2009 (bearbeitet) Mach doch einfach nen Counter, der wenn eine Mail verschickt wurde um eins hochzählt. Den fragst du vor dem verschicken der Mail ab und wenn er halt auf 0 steht schickt er und bei 1 nicht :-) MfG Erratum edit: Oder schick die Mail doch einfach nach der For...each....Next schleife Bearbeitet 13. März 2009 von Eratum Zitieren
M4tRiX Geschrieben 13. März 2009 Autor Geschrieben 13. März 2009 Okay vielen Dank euch 2! Ich les mich dann mal weiter ein in Richtung Logfile auslesen. Falls ich fragen hab, meld ich mich wieder Zitieren
M4tRiX Geschrieben 13. März 2009 Autor Geschrieben 13. März 2009 Beim Auslesen eines Logfiles habe ich mal wieder ein kleines Problem-.- *langsam wirds echt peinlich^^* naja.. und zwar muss ich das "ändern datum" einer datei herausfinden... wie kann ich das machen? Zum anderen muss ich dann in dem Logfile gucken wo genau dieses Datum vorhanden ist und ob es erfolgreich war oder nicht. Es steht dann da: war erfolgreich oder war NICHT erfolgreich.. Danke für eure hilfe... Zitieren
M4tRiX Geschrieben 13. März 2009 Autor Geschrieben 13. März 2009 so das datum hab ich Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder (cSource) Set colFiles = objFolder.Files For Each objFile in colFiles 'Speicherung der Informationen der neusten Datei in Variablen strFile = objFile.Name strPath = objFile.Path strAccessed = objFile.DateLastAccessed Zitieren
Eratum Geschrieben 16. März 2009 Geschrieben 16. März 2009 Warst du nun ingesamt schon erfolgreich? Oder hast du "nur" das Datum der Datei? Zitieren
M4tRiX Geschrieben 16. März 2009 Autor Geschrieben 16. März 2009 hab alles herausgefunden.. ich veröffetnliche am mittwoch den code.. damit alle was davon haben wenn jemand das gleiche problem mal haben sollte... oder so ähnlich.. danke für eure hilfe :uli:uli:uli Zitieren
M4tRiX Geschrieben 18. März 2009 Autor Geschrieben 18. März 2009 hier der versprochene Code: Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile(strPath, 1) Do Until objFile.AtEndOfStream Redim Preserve arrFileLines(i) arrFileLines(i) = objFile.ReadLine i = i + 1 Loop objFile.Close For line = Ubound(arrFileLines) to LBound(arrFileLines) Step -1 if arrFileLines(line)= ("blablabla") then line= line+1 finding = arrFileLines(line) line=line-1 End if Next 'Die gewünschte Zeile wird gespalten arrFinding = Split(finding, ":") '________________________________________________________________________ if(strFile="bla.xml") then if arrFinding(0) = ("NICHT erfolgreich") then 'Verschiebt die Daten in den Ordner Error objFSO.MoveFile cDestination & strFile, cError objFSO.MoveFile cShort, cError End if if arrFinding(0) = ("erfolgreich") then Set objFSO = CreateObject("Scripting.FileSystemObject") objFSO.DeleteFile cDestination & strFile objFSO.DeleteFile cShort End if End if Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.