Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

DOS Befehl "Chdir" mit System() aus C/C++ Programm übergeben

komma8komma1 / 10 Antworten / Flachansicht Nickles

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

Kommunikationsquantität schlägt nur allzu leicht um in Belästigungsqualität (Robert Gernhardt 1937-2006)
bei Antwort benachrichtigen
DOS Befehl laola1
komma8komma1 laola1 „Es könnte auch helfen wenn Du einmal genau beschreibst was Du machen willst....“
Optionen

Also Hintergrund ist folgender: Ich arbeite gerade ein C++ Buch vom Autor Erlenkötter durch (kann ich übrigens jedem Einsteiger empfehlen). Um die Beispiele und Aufgaben auszutesten starte ich diese in der DosBox (mit ausführen "cmd" aufgerufen). Weil ich die Beispiele logischerweise nicht ins Root Verzeichnis compiliere muss ich mich immer durch diverse unterverzeichnisse hangeln, bzw. mit einer Batch datei dorthinwechseln. Das mit der Batch war mir allerdings zu unelegant, also dachte ich mir ich setze mal meine neuen Programmierkenntnisse um und schreibe mir eine kleine Dos Anwendung die ich "shdir" (SHortcutDirectory) getauft habe. In dem C++ Programm habe ich einem Array ein paar typische Pfade zu denen ich regelmässig wechseln muss hinterlegt. Ich will dann über die DOS Befehlszeile "shdir 00" eingeben und so zum ersten im Array hinterlegten Pfad wechseln. Mit "shdir 01" zum 2. hinterlegten pfad usw. bis zu 99 möglichen hinterlegten Pfaden.
Das Programm steht soweit, dass es die übergebenen Parameter korrekt auswertet, auch ein Anzeige für alle hinterlegten Pfade existiert bereits.
Mir fehlt jetzt nur noch der schritt dass Programm dazu zu bringen auch Tatsächlich zu dem hinterlegten Pfad zu springen. Mein Ansatz war mit der funktion system() den Chdir befehl zu übergeben.
Sicher gibt es für dieses Problem auch elegantere Ansätze z.b. eine GUI anwendung in der ich die gewünschten Pfade anklicke, allerdings bin ich von Win Programmierung noch einen großen Schritt entfernt. Falls du da übrigens gute Bücher empfehlen kannst, wäre ich für jeden Tipp Dankbar ;)

Kommunikationsquantität schlägt nur allzu leicht um in Belästigungsqualität (Robert Gernhardt 1937-2006)
bei Antwort benachrichtigen