Aus Konsolenprogramm das Verzeichnis wechseln

Andreas Gaisbauer

Erfahrenes Mitglied
Hallo zusammen,

ich brauch mal eine Idee von euch. Ich hab ein Konsolenprogramm das direkt in aus der Konsole aus aufgerufen wird (also keinen Doppelklick). Das Programm erzeugt einige Verzeichnisse und Dateien. Nun möchte ich nachdem es fertig ist automatisch in das zuletzt erzeugte Verzeichnis wechseln (direkt in der Shell, aus der das Tool gestartet wurde). Ist das möglich? Ich hab mal ganz naiv versucht das Verzeichnis via WriteLine() auszugeben und weiter zu pipen

Code:
Tool.exe | cd

- aber das funktioniert nicht. Perfekt wäre es wenn ich praktisch im Tool ein "CD" mache und damit das Working Directory der aufrufenden Shell ändere...

ciao
Andreas
 
Hm, spontan würde ich jetzt sagen, versuch doch mal eine Bat-Datei. Das Tool aufrufen, dort das letzte Verzeichnis in eine temporäre Datei schreiben, in der Bat-Datei nun auf den Pfad in der Datei wechseln und diese dann löschen....Evt. ein wenig kompliziert, evt. gibt es auch die Möglichkeit, aus dem Tool einen Rückgabewert rauszuholen, weiß ich aber grad nicht.
 
Hallo,

hab gerade kein .Net drauf deshalb hier mal ein java Beispiel:
Java:
/**
 * 
 */
package de.tutorials;

/**
 * @author Tom
 * 
 */
public class ChangeDirectory {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        System.out.println(new ProcessBuilder("cmd", "/c", "start", "pushd", "d:\\temp").start().waitFor());
    }

}

Das öffnet dir ein neues (!) Konsolenfenster mit dem entsprechenden Verzeichnis als "Working Directory". Du könntest ja mal versuchen dir den entsprechenden Console Prozess zu besorgen und dort dann das commando abzusetzen ohne gleich eine neue Console mit (cmd /c) starten zu müssen.

Gruß Tom
 
Hallo zusammen,

@Mel_One: Das mit der Batch Datei ist gar nicht mal so abwegig - vielleicht einfach in eine Umgebungsvariable schreiben und dann via Batch wechseln - das könnte klappen.

@Tom: Gute Idee - mal schauen ob ich den Consolen Prozess bekommen bzw was drin machen kann (wenn ich ja eigentlich noch drinnen laufe).

Ich versuch beides einmal - thx
Andreas
 
Zurück