Hi Leute,
        Jetzt muss ich euch nochmal mit einer Frage nerven.
        Ich bin gerade dabei mir eine kleine DOS Anwendung zu schreiben bei der ich vordefinierte Pfade über einen Shortcut aufrufe um in der DOS Box von XP das Verzeichnis zu wechseln.
        Dafür möchte ich den Befehl Chdir bzw cd mittels der funktion System() übergeben.
        Wenn ich einfach nur "cd" übergebe, klappt es auch dass ich info über den aktuellen Pfad bekomme.
        Auch bekomme ich eine Fehlermeldung wenn ich wissentlich ein falsches Verzeichnis angebe.
        Das sagt mir das der Befehl schon übergeben wird.
        
        Nur leider wenn ich einen korrekten Pfad oder Verzeichnis angeben dann passiert nüx. Selbst über Errno bekomme ich die 0 zurück in einem solchen fall.
        
        Jetzt frage ich mich ob einer von euch ein Idee hat, wie über system() dem CD befehl dazu bewegen kann, dass verzeichnis zu wechseln, Bzw. gibt es noch einen anderen weg DOS befehle an die Box zu übergeben?
        
        Bei der Gelegenheit ist mir auch aufgefallen dass es anscheinend nicht klappt mit z.b. system("D:") das Laufwerk zu wechseln.
        
        Für Rat wäre ich sehr dankbar.
        
        Rüdiger
      
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
          Hallo
          
          Ich finde die Lösung mit der Batchdatei besser als die mit dem C++ - Programm. Mit einem Script in seine Entwicklungsumgebung zu gelangen, gemäss meinen Erfahrungen, durchaus gebräuchlich.
          
          Nun zu deinem CHDIR - Problem:
          C:\>chdir /?
          Wechselt das Verzeichnis oder zeigt dessen Namen an.
          
          CHDIR [/D] [Laufwerk:][Pfad]
          CHDIR [..]
          CD [/D] [Laufwerk:][Pfad]
          CD [..]
          
          .. Gibt an, dass Sie in das übergeordnete Verzeichnis wechseln möchten.
          
          Geben Sie "CD Laufwerk:" ein, um das aktuelle Verzeichnis auf dem angegebenen
          Laufwerk anzuzeigen. Mit CD ohne Parameter wird das aktuelle Laufwerk und
          Verzeichnis angezeigt.
          
          Verwenden Sie die /D-Option, um zusätzlich zum Wechseln des Verzeichnisses
          auch das aktuelle Laufwerk zu wechseln.
          
          Wenn die Befehlserweiterungen aktiviert sind, wird CHDIR folgendermaßen
          verändert:
          
          Der angegebene Verzeichnisname wird so konvertiert, dass dieser bezüglich
          Groß- und Kleinschreibung dem Namen auf dem Laufwerk entspricht. So wird durch
          CD C:\TEMP der aktuelle Pfad auf das Verzeichnis C:\Temp festgelegt, wenn ein
          Verzeichnis mit diesem Namen auf dem Laufwerk existiert.
          
          Der CHDIR-Befehl behandelt Leerzeichen nicht als Begrenzungszeichen, so dass es
          möglich ist, in ein Unterverzeichnis zu wechseln, dessen Name Leerzeichen
          enthält, ohne diese mit Anführungszeichen einzuschließen. Beispiel:
          
          cd Eigene Dateien
          
          ist dasselbe wie:
          
          cd "Eigene Dateien"
          
          Wenn die Befehlserweiterungen nicht aktiviert sind, müssen die Anführungs-
          zeichen angegeben werden.
          
          C:\>chdir /D d:\tmp
          
          D:\tmp>
          
          Kann es sein, dass dein Problem die fehlende /D - Option ist?
          
          Gruss, d-oli
        
