Jump to content

Mehrere Argumente übergeben und in eine Variabel zusammenfassen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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! :-)

Link zu diesem Kommentar

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!

Link zu diesem Kommentar

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!

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...