blob 10 Geschrieben 29. Dezember 2008 Melden Teilen Geschrieben 29. Dezember 2008 Hallo zusammen! Also ich habe ein Batchfile, welches mir Pfade zu einzelnen Dateien an ein VBScript übergibt. Jetzt ist aber die Anzahl der Argumente unbekannt, da es z.B. Dateien gibt die ein Leerzeichen haben und bei der Übergabe somit mehrere Argumente übergeben werden, hier ein Beispiel: Batchskript übergibt Pfad an VBScript: FOR /f %%f IN (liste.txt) DO CALL search.vbs "%%f" <- als Variabel nehmen wir mal "c:\test\Datei mit Leerzeichen.txt" Es werden dem VBScript also die Argumente "c:\test\Datei", "mit" und "Leerzeichen.txt" übergeben. Folglich findet mein search.vbs die Datei nicht, wenn ich nach wscript.Arguments(0) suchen würde. Ich löse es mit dieser for each Schleife: For Each element In wscript.arguments elementliste = elementliste & element & " " Next Als Ergebnis liefert er mir dann: "c:\test\Datei mit Leerzeichen.txt " <- Am Ende ist ein Leerzeichen zuviel, und daher bei der Weiterverarbeitung unbekannt da dieser Pfad nicht existiert. Hat jemand eine Idee wie ich das Problem lösen könnte? Die Argumente variieren, denn des kann ja z.B. 4 Leerzeichen im Dateinamen sein, also mit for each müsste man es ja schon auslesen. Ich bekomme auf jedenfall den zerstückelten Pfad nicht wieder richtig zusammengesetzt. *help* Danke im voraus! :-) Zitieren Link zu diesem Kommentar
ZeroKnowledge 11 Geschrieben 29. Dezember 2008 Melden Teilen Geschrieben 29. Dezember 2008 Ich kann dein Problem zwar nicht nachvollziehen. Bei mir wird der Inhalt der Variable nicht an den Leerzeichen aufgeteilt und einzeln als Parameter an das Skript übergeben. Aber hier mal zwei Funktionen die helfen sollten: Join RTrim Zitieren Link zu diesem Kommentar
blob 10 Geschrieben 29. Dezember 2008 Autor Melden Teilen Geschrieben 29. Dezember 2008 na, wenn ich von einem Batchscript also von der Commandline eine VBS aufrufe und parameter übergeben möchte, sieht es ja so aus: call script.vbs argument1 argument2 argument3 mein pfad sieht so aus: call script.vbs C:\Test\Dateiname mit leerzeichen.txt sind wie im ersten beispiel auch 3 Argumente die übergeben werden. Anführungszeichen helfen da nicht. Aber du hast mir schon super geholen mit dem Befehl RTrim, das ist genau das was ich gesucht habe! Merci! Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 29. Dezember 2008 Melden Teilen Geschrieben 29. Dezember 2008 Anführungszeichen helfen da nicht. Hmmm... wenn ich hier ne Batch mit script.vbs "C:\Pfad\Datei mit Leerzeichen.txt" aufrufe, bekomme ich den kpl. Pfad in Wscript.Arguments(0) (ohne die Anführungszeichen) Zitieren Link zu diesem Kommentar
blob 10 Geschrieben 2. Januar 2009 Autor Melden Teilen Geschrieben 2. Januar 2009 tatsache, es geht auch so. ich glaube der fehler liegt in der Batch: FOR /f %%f IN (liste.txt) DO CALL search.vbs "%%f" in der Command Line sehe ich zwar dann den Pfad in Anführungszeichen, aber will irgendwie nicht. für mich unerheblich denn ich will ja von Batch weg auf VBS und PS, meine liste wird mittlerweile per VBS ausgelesen ;-) Vielen Dank für die Hilfe! 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.