Programmieren - alles kontrollieren 4.938 Themen, 20.667 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 d-oli „PS: Wenn du das BAT - Script dorthin speicherst wo die Umgebungsvariable PATH...“
Optionen

Ok Danke für die Info.
Deine Erklärung klingt logisch. Und spätestens jetzt stellt sich die Frage ob sich der Aufwand für die Spielerei die ich vorhatte tatsächlich noch lohnt. Ich würde man sagen dass kann ich mit einem klaren nein beantworten und bleibe bei meiner BAT. :P
Na ja wenigsten habe ich wieder was gelernt ;-) und den link den du mitgeschickt hast, werde ich mir demnächst mal zu Gemüte führen.

Gruß

Rüdiger

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