1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

VBS-Skript Pfadangabe mit Leerzeichen?

Discussion in 'Software allgemein' started by smalb, Jun 25, 2002.

Thread Status:
Not open for further replies.
  1. smalb

    smalb ROM

    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

    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

    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

    %20\' oder mit ASCII (32), einfach mal rumprobieren wie das Leerzeichen in deinem VBS codiert ist. Ist doch auch nur ein Zeichen!

    Ciao petack
     
Thread Status:
Not open for further replies.

Share This Page