Waldgeist: Probleme mit CurDir

Hallo!

Ich versuche herraus zu finden in welchem Ordner ich mich befinde.

DIM Pfad As String

Pfad = CurDir$()

MsgBox Pfad

So klappt es leider nicht.
Weiß wer wie es geht?

Gruß

Waldgeist

  1. Hallo

    Ich versuche herraus zu finden in welchem Ordner ich mich befinde.

    Ich habe keine Lösung über z.B. das FSO gefunden - was für mich naheliegend gewesen wäre.

    Ich denke Du musst in die Richtung von ASP suchen. Ganz sicher gibts eine Methode die den aktuellen "ausführungspfad der ASP - Seite" zurückgibt.

    HTH
    kaepten

    1. Hallo!

      Ich brauche aber eine lösung in VBS, leider.
      Irgendwie muss das denk ich gehen.
      Sehe keinen Grund warum das nicht gehen sollte.

      Gruß

      Waldgeist

      1. Hallo

        Ich brauche aber eine lösung in VBS, leider.
        Irgendwie muss das denk ich gehen.
        Sehe keinen Grund warum das nicht gehen sollte.

        Du verstehst mich falsch! Du suchst am falschen Ende.

        Ich bin mir auch sicher dass Du an das "aktuelle Verzeichnis" rankommst. Aber nicht über FSO (Filesystem Objekte), sondern über "Webserver"-Objekte. Das wollte ich Dir sagen.

        Es gibt kein aktuelles Verzeichnis! Es gibt höchstens das Verzeichnis woraus die aktuelle ASP-Seite aufgerufen wurde. Alles klar?

        kaepten

        1. Aber ich hab doch garkein ASP, kann auch keins Nutzen da ich keinen Webserver habe.
          Ich hab ein Script das mir alle Unterordner eines Ordners anzeigt.
          Und zwar genau immer von dem Ordner in dem sich auch das VBS file befindet. Also soll das Script jetzt ersmal auslesen in welchem Ordner es sich befindet und dann mit der Abfrage nach den Ordnern Starten.

          <HTML>
          <body>
          <script Language="VBSCRIPT">

          'Einfache HTML-Seite zur Demonstration, wie man mit VBA die Name der Unterordner eines Ordners ausliest

          DIM FSO        ' Variable für den Zugriff auf das File System Object
          DIM oFolder    ' Variable für den Ordner, in dem die Unterordner entstehen
          DIM oSubFolder ' Variable für die Unterordner
          DIM Folder     ' Variabel für den Ordner, in dem die Unterordner entstehen
          DIM Pfad

          Pfad = ""

          MsgBox Pfad

          Folder = "E:"

          ' Zugriff auf das FSO herstellen
          Set FSO     = CreateObject("Scripting.FileSystemObject")

          Set oFolder = FSO.GetFolder(Folder)

          document.write "<table border=1>"
              document.write "<tr><td> Alle Unterordner des Ordners " & Folder & " </td></tr>"
              For Each oSubFolder in oFolder.SubFolders

          document.write "<tr><td> <a href="& Folder & oFolder.Name & oSubFolder.Name & "\VBS_exp2.htm >"& oSubFolder.Name &"</a></tr></td>"

          Next

          'Tabelle schliessen

          document.write "</table>"

          </script>
          </body>
          </HTML>

          1. Hallo

            Ach sch** - ICH hab Dich falsch verstanden sorry! Ich sag nichts mehr... :-)

            Ja klar, irgenwie sollte man an das aktive Win-Verzeichnis kommen, da geb ich Dir recht.

            kaepten

            1. Schön das wir uns nun verstehen.
              Und wie komme ich nun da drauf?

              1. Hallo,

                Set objFSO    = CreateObject("Scripting.FileSystemObject")
                Set objFolder = objFSO.GetFolder(".")

                MsgBox objFolder.Path

                Set objFolder = Nothing
                Set objFSO    = Nothing

                Tschau, Stefan

                1. Hi Stefan

                  Das war jetzt wirklich gemein, ich hab mir solche Mühe gegeben etwas zu finen... ;-)

                  kaepten

                  1. Hi kaepten,

                    Das war jetzt wirklich gemein, ich hab mir solche Mühe gegeben etwas zu finen... ;-)

                    :) Doppelt gemoppelt hält doch eh besser ;)

                    Tschau, Stefan

                    1. Hey!
                      Danke hier beiden, hat super funktioniert!!!

                      Grüße aus Stuttgart

                      Waldgeist

                      1. mh, irgendwie geht es doch noch nicht.
                        mein Aktueller Ordner ist irgendwie immer der Desktop obwohl die Datei von E:\ gestartet wird. Warum?

                        DIM FSO        ' Variable für den Zugriff auf das File System Object
                        DIM oFolder    ' Variable für den Ordner, in dem die Unterordner entstehen
                        DIM oSubFolder ' Variable für die Unterordner
                        DIM Folder     ' Variabel für den Ordner, in dem die Unterordner entstehen
                        DIM Pfad

                        Set objFSO    = CreateObject("Scripting.FileSystemObject")
                        Set objFolder = objFSO.GetFolder(".")

                        MsgBox objFolder.Path

                        Folder = objFolder

                        Set objFolder = Nothing
                        Set objFSO    = Nothing

                        ' Zugriff auf das FSO herstellen
                        Set FSO     = CreateObject("Scripting.FileSystemObject")

                        Set oFolder = FSO.GetFolder(Folder)

                        document.write "<table border=1>"
                            document.write "<tr><td> Alle Unterordner des Ordners " & Folder & " </td></tr>"
                            For Each oSubFolder in oFolder.SubFolders

                        document.write "<tr><td> <a href="& Folder & oFolder.Name & oSubFolder.Name & "\VBS_exp2.htm >"& oSubFolder.Name &"</a></tr></td>"

                        Next

                        'Tabelle schliessen

                        document.write "</table>"

                        </script>
                        </body>
                        </HTML>

                        1. mh, irgendwie geht es doch noch nicht.
                          mein Aktueller Ordner ist irgendwie immer der Desktop obwohl die Datei von E:\ gestartet wird. Warum?

                          DIM FSO        ' Variable für den Zugriff auf das File System Object
                          DIM oFolder    ' Variable für den Ordner, in dem die Unterordner entstehen
                          DIM oSubFolder ' Variable für die Unterordner
                          DIM Folder     ' Variabel für den Ordner, in dem die Unterordner entstehen
                          DIM Pfad

                          Set objFSO    = CreateObject("Scripting.FileSystemObject")
                          Set objFolder = objFSO.GetFolder(".")

                          MsgBox objFolder.Path

                          Folder = objFolder

                          Set objFolder = Nothing
                          Set objFSO    = Nothing

                          ' Zugriff auf das FSO herstellen
                          Set FSO     = CreateObject("Scripting.FileSystemObject")

                          Set oFolder = FSO.GetFolder(Folder)

                          document.write "<table border=1>"
                              document.write "<tr><td> Alle Unterordner des Ordners " & Folder & " </td></tr>"
                              For Each oSubFolder in oFolder.SubFolders

                          document.write "<tr><td> <a href="& Folder & oFolder.Name & oSubFolder.Name & "\VBS_exp2.htm >"& oSubFolder.Name &"</a></tr></td>"

                          Next

                          'Tabelle schliessen

                          document.write "</table>"

                          </script>
                          </body>
                          </HTML>

                          1. mh, irgendwie geht es doch noch nicht.
                            mein Aktueller Ordner ist irgendwie immer der Desktop obwohl die Datei von E:\ gestartet wird. Warum?

                            DIM FSO        ' Variable für den Zugriff auf das File System Object
                            DIM oFolder    ' Variable für den Ordner, in dem die Unterordner entstehen
                            DIM oSubFolder ' Variable für die Unterordner
                            DIM Folder     ' Variabel für den Ordner, in dem die Unterordner entstehen
                            DIM Pfad

                            Set objFSO    = CreateObject("Scripting.FileSystemObject")
                            Set objFolder = objFSO.GetFolder(".")

                            MsgBox objFolder.Path

                            Folder = objFolder

                            Set objFolder = Nothing
                            Set objFSO    = Nothing

                            ' Zugriff auf das FSO herstellen
                            Set FSO     = CreateObject("Scripting.FileSystemObject")

                            Set oFolder = FSO.GetFolder(Folder)

                            document.write "<table border=1>"
                                document.write "<tr><td> Alle Unterordner des Ordners " & Folder & " </td></tr>"
                                For Each oSubFolder in oFolder.SubFolders

                            document.write "<tr><td> <a href="& Folder & oFolder.Name & oSubFolder.Name & "\VBS_exp2.htm >"& oSubFolder.Name &"</a></tr></td>"

                            Next

                            'Tabelle schliessen

                            document.write "</table>"

                            </script>
                            </body>
                            </HTML>

                            1. Hallo

                              Lass das Mehrfach-Posten, das wird ganz und gar nicht gern gesehen! Ich habs schon gesehen, aber nicht geantwortet siehe nächster Satz:

                              Leider kann ich nicht mehr helfen, da ich den Code von Dir hier nicht testen kann und mich mit VBS zu wenig auskenne.

                              Sorry
                              kaepten

                              1. Hallo!
                                Schade das du mir da nimmer weiter helfen kannst.
                                Aber hast mir ja auch schon ein ganzes Stück weiter geholfen.
                                Dank dir!

                                Gruß Waldgeist

                                1. Hallo Waldgeist

                                  Ich habe das Script doch testen können.

                                  Habe dazu nur die Zeilen hier genommen:

                                  DIM FSO        ' Variable für den Zugriff auf das File System Object
                                  DIM oFolder    ' Variable für den Ordner, in dem die Unterordner entstehen
                                  DIM oSubFolder ' Variable für die Unterordner
                                  DIM Folder     ' Variabel für den Ordner, in dem die Unterordner entstehen
                                  DIM Pfad

                                  Set objFSO    = CreateObject("Scripting.FileSystemObject")
                                  Set objFolder = objFSO.GetFolder(".")

                                  MsgBox objFolder.Path

                                  Folder = objFolder

                                  Set objFolder = Nothing
                                  Set objFSO    = Nothing

                                  Ich kann Dir aber leider nur berichten, dass die Alertbox schön brav genau das Verzeichnis anzeigt, aus welchem ich die VBS Datei gestartet habe! Zu testzwecke habe ich es in unterschiedliche Laufwerke und Verzeichnise kopiert...

                                  kaepten

              2. Waldgeist

                Gut dass wir uns nach 6 Postings dem Problem annehmen können! *freufreu*

                Also, als "Entschädigung" habe ich gegoogelt und folgendes gefunden:

                http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/jsmthgetfolder.asp

                ZITAT:
                Arguments

                object
                    Required. Always the name of a FileSystemObject.
                folderspec
                    Required. The folderspec is the path (absolute or relative) to a specific folder.

                Woraus ich folgere, dass folgende Zeile effektiv den aktuellen Folder bringt.

                Dim CurrentFolder: Set CurrentFolder = fso.GetFolder(".")

                Probiers mal aus.

                cheers
                kaepten