Shemeneto 11 Geschrieben 27. März 2009 Melden Teilen Geschrieben 27. März 2009 Hallo, folgendes Problem. Habe ein VB-Script in dem es einen Funktion gibt die eine Ini-Datei auswerten soll. Die Ini-Datei liegt im gleichen Ordner wie das Script. Wenn ich das Script über eine GPO als Startscript (Computerkonfiguration)aufrufe, errscheint die Fehlermeldung: "(21,1) Laufzeitfehler in MS VBScript. Datei wurde nicht gefunden" In Zeile 14 beginnt die Funktion, die als Paramter den Pfad der Ini-Datei bekommt. Private Function IniValue(ByVal section, ByVal [b]iniFile[/b]) Habe im Script relative Pfadangaben und UNC-Pfadangaben benutzt. Egal es kommt immer der gleiche Fehler. Rufe ich aus dem Script z.B. eine exe Datei auf die im gleichen Verzeichnis liegt, bekomme ich keinen Fehler. Gruß, Markus edit: Zeile 21 ist: Set objIni = objFSO.OpenTextFile(iniFile, ForReading, vbFalse)[/Code] Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 27. März 2009 Melden Teilen Geschrieben 27. März 2009 Moin, um das beurteilen zu können, brauchen wir das ganze Skript oder wenigstens alle relevanten Zeilen (Aufruf der Funktion sowie aus der Funktion die Zeilen, die mit der Datei umgehen). Gruß, Nils Zitieren Link zu diesem Kommentar
Shemeneto 11 Geschrieben 27. März 2009 Autor Melden Teilen Geschrieben 27. März 2009 in diesem Fall habe ich die Dateien alle nach %windir%\Temp kopiert. Private Function IniValue(ByVal section, ByVal iniFile) Const ForReading = 1 Dim objFSO, objIni Dim line, firstChar, marker, value, i, j, iniArray(3,1) Set objFSO = CreateObject("Scripting.FileSystemObject") Set objIni = objFSO.OpenTextFile(iniFile, ForReading, vbFalse) marker = False While Not objIni.AtEndOfStream ... IniValue = iniArray End Function ... iniPath = systemRoot & "\Temp\Dateiname.ini" iniValues = IniValue(Parameter1, iniPath) Zitieren Link zu diesem Kommentar
d.stegemann 10 Geschrieben 27. März 2009 Melden Teilen Geschrieben 27. März 2009 Hallo, mit welchem Wert ist denn systemRoot besetzt? Hast du das vorher z.B. mit ExpandEnvironmentstrings ausgelesen? Wenn die ini im gleichen Verzeichnis liegt wie das Script selbst, könntest du auch getFolder"." benutzen... Ich würde an deiner Stelle mal den String iniPath per msgbox ansehen. Das könnte durchaus aufschlußreich sein... Gruß Dirk Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 27. März 2009 Melden Teilen Geschrieben 27. März 2009 Moin, Dirks Hinweise sind gut. Zusätzlich: Wenn du einen Pfad zusammenbaust, solltest du die FileSystemObject-Funktion "BuildPath" benutzen, denn die kümmert sich von selbst um die richtige Anzahl an Backslashes. Gruß, Nils Zitieren Link zu diesem Kommentar
Shemeneto 11 Geschrieben 30. März 2009 Autor Melden Teilen Geschrieben 30. März 2009 der Pfad ist nicht das Problem. Selbst wenn ich ihn direkt reinschreibe, bekomme ich die Fehlermeldung. Und ums noch verückter zu machen... Ich habe folgende Zeilen innerhalb der Funktion hinzugefügt um, wie d.stegemann vorgeschlagen hat, den Pfad in der Variable auszulesen. Set objFSO = CreateObject("Scripting.FileSystemObject") Set objIni = objFSO.OpenTextFile(iniFile, ForReading, vbFalse) WScript.Echo iniFile WScript.Echo objIni.Column WScript.Quit Dies funktioniert komischerweise ohne Probleme. Ich kann sogar auf File-Object (mit .Column) zugreifen. In diesem Versuch habe ich die Funktion und damit das ganze Script mit WScript.Quit abbrechen lassen. Entferne ich WScript.Quit bekomme ich wieder den Fehler das die Datei nicht gefunden wurde mit Verweis auf folgende Zeile im Code: Set objIni = objFSO.OpenTextFile(iniFile, ForReading, vbFalse) Das Problem tritt übrigens nur innerhalb der Funktion auf. Im restlichen Script funktioniert alles ohne Probleme. edit: Habe das Problem gefunden! Zuerst war es wirklich am Pfad gelegen. Diesen habe ich dann mit GetParentFolderName geholt. Damit gings dann. Nur hatte ich einen weiteren nicht mehr gebrauchten Aufruf der Funktion (den ich total vergessen habe), in dem der Pfad natürlich nicht ausgebessert war. Danke für den Tipp mit GetParentFolderName! Gruß, Markus Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.