VBS-Skript Pfadangabe mit Leerzeichen?

Dieses Thema im Forum "Software allgemein" wurde erstellt von smalb, 25. Juni 2002.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. smalb

    smalb ROM

    Registriert seit:
    25. Juni 2002
    Beiträge:
    3
    Shell-Objekt definieren
    osh.run "start C:\Ordner\Ordener\prog.exe?,0

    und so nicht:

    set osh = wscript.CreateObject("wscript.Shell") \'Shell-Objekt definieren
    osh.run "start C:\Ordner\Ordner mitLeerzeichen\prog.exe",0

    Vielen Dank für die Hilfe...
     
  2. smalb

    smalb ROM

    Registriert seit:
    25. Juni 2002
    Beiträge:
    3
    So hat es dann geklappt:

    set newobj=createobject("wscript.shell")
    newobj.run("""C:\Ordener mit Leerzeichen\prog.exe"""),0

    Danke an alle... :-)
     
  3. dwave

    dwave PC-WELT Redaktion

    Registriert seit:
    29. Juni 2001
    Beiträge:
    274
    Hi smalb,

    du hast 3 Möglichkeiten, dein Problem zu lösen. Aber erst solltest du "start" aus dem String da oben entfernen, denn das wird so nur auf den alten Windows9x-Systemen funktionieren.

    1.) Lange Pfadangaben mit Leerzeichen musst du in der Shell mit Leerzeichen einfassen. Nur so weiss die Shell, was der Pfad ist und was das nächste Kommando.
    In deinem String hinter osh.run kannst du aber nicht einfach Anführungszeichen einbauen, das verbietet die Syntax von VBScript. Stattdessen benötigst du den Char-Code für die Anführungszeichen: Chr(34)

    So sieht}s dann im Script aus:

    Set oWSH = Wscript.CreateObject("Wscript.Shell")
    oWSH.run Chr(34) & "C:\Ordner\Ordner mit Leerzeichen\Prog.exe" & Chr(34)

    \'ende des Beispiels

    Sieht ganz schön umständlich aus. Ist es auch.

    2.) Ich kann deshalb nur dazu raten bei allem Programmen, Sprachen, Scriptderivaten aus dem Hause Microsoft auf lange Pfadangaben zu verzichten. Verwende lieber die DOS-Konforme 8.3 Schreibweise. In der COMMAND.COM Shell zeigt dir der Befehl
    dir /L
    die kurzen Dateinamen an. Unter Windows 2000 und XP haben sich aber saublöderweise einige Shell-Befehle geändert, du benötigst hier das Kommando
    dir /X

    3.) Erstelle unter Microsoft Betriebssystemen lieber erst gar keine langen Pfad oder Dateinamen. Erst recht nicht, wenn ein veraltetes Dateisystem wie FAT12, FAT16 oder FAT32 eingesetzt wird. Erspart viel Ärger.

    Viel Erfolg,
    David Wolski
     
  4. petack

    petack Halbes Megabyte

    Registriert seit:
    1. Dezember 2000
    Beiträge:
    537
    %20\' oder mit ASCII (32), einfach mal rumprobieren wie das Leerzeichen in deinem VBS codiert ist. Ist doch auch nur ein Zeichen!

    Ciao petack
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen