Batch und der cd-Befehl



  • Hallo,
    ich weiß gar nicht, ob ich hier oder in einem Windows-Forum fragen soll.

    Einfacher Code, unter Windows 7 64-bit als Batch oder in cmd ausgeführt:

    cd D:\Programme\
    

    Das "current directory" sollte zu D:\Programme\ wechseln. Tut es aber nicht. Es bleibt bei C:\Users\usw.
    Unter XP hat das doch so geklappt, muss ich jetzt noch irgendwas neues beachten? 😕



  • Ich erinnere mich düster aus Win95-Zeiten, daß man den Laufwerkswechsel gesondert anweisen muß (kurz getestet, das macht mein XP-Rechner immer noch genauso):

    D:
    cd Programme
    


  • Edit: CStoll liegt richtig. Wenn du das Laufwerk wechseln willst, musst du das vorher angeben und erst dann kannst du cd benutzen.


  • Mod

    FreakY<3Cpp schrieb:

    Edit: CStoll liegt richtig. Wenn du das Laufwerk wechseln willst, musst du das vorher angeben und erst dann kannst du cd benutzen.

    Wenn ich mich recht erinnere, kannst du sogar vorher schon cd benutzen:

    cd D:\Programme\
    D:
    

    sollte funktionieren.
    Habe aber kein MS-DOS mehr zum testen.



  • Wurstinator schrieb:

    cd D:\Programme\
    

    Das "current directory" sollte zu D:\Programme\ wechseln. Tut es aber nicht. Es bleibt bei C:\Users\usw.
    Unter XP hat das doch so geklappt, muss ich jetzt noch irgendwas neues beachten? 😕

    Das von dir gewünschte Verhalten bekommst du mit dem /D Switch:

    cd /D D:\Programme
    

    Wenn der Pfad Leerzeichen enthält:

    cd /D "D:\Program Files"
    

    EDIT:
    Was auch noch praktisch ist, ist "pushd":

    C:\foo> pushd "D:\Program Files"
    D:\Program Files> popd
    C:\foo> exit
    

    Ein cooles Feature von "pushd" ist, dass es automatisch ein Mapping für Netzlaufwerke erstellen kann, wenn man einen UNC Pfad übergibt:
    ("cd" geht ja nicht mit nem UNC Pfad)

    C:\foo> pushd "\\server\share\subdir"
    (mappt automatisch "\\server\share\subdir" auf den letzten freien Laufwerksbuchstaben)
    Z:\>popd
    (hier wird das Mapping wieder entfernt)
    C:\foo> exit
    


  • Danke, es funktioniert CStolls, als auch mit hustbaers Code.


Anmelden zum Antworten