Befindet sich in der Windows-Eingabeaufforderung ein Verknüpfungsbefehl, um zum Ausgangsverzeichnis des aktuellen Benutzers zu gelangen, wie dies in Linux der Fall ist?


104

Ich bin es gewohnt zu benutzen

cd ~

um direkt in mein Homeverzeichnis zu gelangen. In der Windows-Eingabeaufforderung muss ich tun

cd Users\username

um dorthin zu kommen. Gibt es eine Verknüpfung wie die von Linux? Es wäre schön, wenn ich damit dorthin gelangen könnte

cd username

Ist so etwas in Windows Vista möglich?


7
In Unix ist die Tilde nicht erforderlich. cdOhne Argumente wird in Ihr Ausgangsverzeichnis gewechselt.
Coneslayer

Es gab eine Frage wie diese hier auf su, kann es nicht finden.
Akira

1
@coneslayer Ich weiß, aber um eine Datei von einem Verzeichnis in ein anderes zu verschieben, verwenden Sie die Tilde.
Classer

So einfach wiecd %userprofile%
subtleseeker

Sie können Windows Power Shell (unter Windows XP und höher) verwenden, mit der Sie ~ für das Basisverzeichnis verwenden können. Siehe auch ----> stackoverflow.com/questions/9228950/…
franz1

Antworten:


20

Sie können jederzeit irgendwo in% PATH% eine .bat-Datei ablegen, die den Pfad für Sie ändert.


154

Ja, Sie können %HOMEPATH%den vollständigen Pfad des Basisverzeichnisses des Benutzers verwenden.

Es stehen noch einige andere nützliche Variablen zur Verfügung, z. B. %OS%(Betriebssystem) oder %WINDIR%(Windows-Systemverzeichnis). Eine Liste finden Sie in Wikipedia: Umgebungsvariablen .


Anmerkungen :

Eigentlich sind die Dinge etwas kompliziert (wie immer). %HOMEPATH%Enthält nur den Pfad ohne den Laufwerksbuchstaben, funktioniert also nicht für die cdÜbertragung von einem anderen Laufwerk. Sie können auch verwenden %USERPROFILE%, das macht den Laufwerksbuchstaben enthalten, und ist in der Regel das gleiche Verzeichnis wie %HOMEPATH%.

Die Werte dieser Variablen, und welche für Sie richtig ist, hängen von der Windows-Version und allen Änderungen durch einen Administrator ab, da ihre Werte unterschiedlich sein können (siehe z. B. die Frage Unterschied zwischen Profil und Ausgangspfad ).


5
Dies ist meiner Meinung nach die richtigste Antwort, da sie nicht auf fest codierten Pfaden und irgendwelchen verrückten Dateisystem-Links beruht, die sich möglicherweise zwischen ihnen befinden.
Ed Orsi

3
Das ist die richtige Antwort.
Frederik Krautwald

Das hat mein Leben gerettet! Nachdem ich mir viele andere Antworten aus verschiedenen Fragen angesehen habe. Nochmal! Dies hat bei mir funktioniert und sollte als Antwort auf diese Frage markiert werden.
Patricia

@ MissLucy: Ich bin froh, dass es dir geholfen hat. Zur Annahme einer Antwort: Die Entscheidung darüber liegt beim OP. Sie können der Frage einen Kommentar hinzufügen, um sie zu warnen.
Sleske

Verwenden Sie stattdessen% USERPROFILE%.
JJS

21

Zwei weitere Optionen, die beide zu einem Skript hinzugefügt und auf ähnliche Weise wie die Antwort von BillP3rd automatisch ausgeführt werden können.

Es sind noch zwei Charaktere, aber ...

SET ~=%HOMEPATH%    
CD %~%

oder...

CD %~%\Desktop

Oder...

doskey ~=cd %homepath%
~

Natürlich können Sie dies nicht ~in Pfaden verwenden, aber als schnelles "Sprung zu meinem Heimatverzeichnis" ist das Tippen ~ Enterziemlich schnell.


1
Machst du Witze mit dem Doskey-Ding ??? Ich habe jetzt eine einzelne char-Verknüpfung zu jedem Ordner, in den ich mich wie auf einer CD fühle. Dies sollte die Antwort Nummer 1 sein.
Andrew


7

sleskes antwort ist fast genau richtig, aber es funktioniert nicht immer.

Wenn sich Ihr Basisverzeichnis auf einer Netzwerkfreigabe als zugeordnetes Laufwerk befindet, führen Sie unabhängig vom Laufwerk des aktuellen Verzeichnisses Folgendes aus:

cd /D %HOMEDRIVE%%HOMEPATH%

Der /DSchalter ist erforderlich, um cddie Laufwerke wechseln zu können.


5

Gibt es eine Abkürzung für C:\Users\<current user>\?

Es gibt keine direkte Verknüpfung.

Es gibt verschiedene Lösungen (siehe unten).

  1. Verwenden Sie eine Umgebungsvariable zusammen mit cdodercd /d

  2. Verwenden Sie substoder net use, um eine Zuordnung zu einem anderen Laufwerksbuchstaben zu erstellen.

  3. Installieren cygwinund verwendenbash

  4. Verwenden Sie powershell- Powershell unterstützt~

Die letzte Lösung ist wahrscheinlich die einfachste, wenn Sie bereit sind, powershellanstelle von zu verwenden cmd.


Lösung 1: Verwenden Sie eine Umgebungsvariable zusammen mit cdodercd /d

Wenn Sie regelmäßig in dieses Verzeichnis wechseln möchten, führen Sie den folgenden Befehl aus:

setx DOCS %USERPROFILE%

Dadurch wird die Umgebungsvariable dauerhaft festgelegt. DOCSUm sie zu verwenden, müssen Sie jedoch zuerst eine neue cmdShell starten . Dann ist die Variable definiert und einsatzbereit:

F:\test>echo %DOCS%
C:\Users\DavidPostill\

Verwenden Sie den folgenden Befehl, um das Verzeichnis von einem beliebigen Ort aus zu ändern:

cd /d %DOCS%

Wenn Sie bereits auf dem Laufwerk sind c:, können Sie einfach Folgendes verwenden:

cd %DOCS%

Erstellen Sie eine Stapeldatei ( docs.cmd) und legen Sie sie irgendwo in Ihrer ab PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Sie können dann einfach eingeben, docsunabhängig von Ihrem aktuellen Standort, und es wird Sie weiterleitenC:\Users\<current user>


Lösung 2: Verwenden Sie substoder net use, um eine Zuordnung zu einem anderen Laufwerksbuchstaben zu erstellen.

Sie können verwenden subst:

subst x: %USERPROFILE%

Und dann

x:

Leider bleiben die Laufwerkszuordnungen bei Neustarts nicht erhalten.

net use bleibt auch nach einem Neustart erhalten, zum Beispiel:

net use x: "\\computerName\c$\pathName" /persistent:yes

Lesen Sie die Antworten unter So stellen Sie sicher, dass die SUBST-Zuordnung auch nach einem Neustart erhalten bleibt. für detaillierte Anweisungen.


Lösung 3: Installieren cygwinund verwendenbash

Sie könnten überlegen, Cygwin zu installieren :

Cygwin ist:

  • Eine große Sammlung von GNU- und Open Source-Tools, die Funktionen ähnlich einer Linux-Distribution unter Windows bereitstellen.

Sobald Sie Cygwin installiert haben, können Sie es bashauf einem Cygwin-Terminal ausführen und die Umgebungsvariable bash HOMEentsprechend einstellen .

Alternativen zu cygwin beinhalten msys (MingW) :

MSYS ist eine Sammlung von GNU-Dienstprogrammen wie bash, make, gawk und grep, mit denen Anwendungen und Programme erstellt werden können, die von traditionell UNIX-Tools abhängen. Es soll MinGW und die Mängel der cmd-Shell ergänzen.

Und Git für Windows :

Git für Windows bietet eine BASH-Emulation, mit der Git über die Befehlszeile ausgeführt werden kann. * NIX-Benutzer sollten sich wie zu Hause fühlen, da sich die BASH-Emulation genauso verhält wie der Befehl "git" in LINUX- und UNIX-Umgebungen.


Lösung 4: Verwenden Sie powershell

Wie in einem Kommentar zu einer anderen Frage von SBI Powershell hervorgehoben ~, können Sie einfach Folgendes eingeben :

cd ~

Weitere Lektüre

  • Ein AZ-Index der Windows CMD-Befehlszeile - Eine hervorragende Referenz für alle Dinge, die mit der Windows CMD-Zeile zu tun haben.
  • cd - Verzeichnis wechseln - Ordner (und Laufwerk) auswählen
  • setx - Umgebungsvariablen permanent setzen, SETX kann verwendet werden, um Umgebungsvariablen für die Maschine (HKLM) oder den aktuell angemeldeten Benutzer (HKCU) zu setzen.
  • subst - Ersetzen Sie ein Netzwerk oder einen lokalen Pfad durch einen Laufwerksbuchstaben.

Wenn auf Powershell gibt es zwei zusätzliche Möglichkeiten: cd $HOMEundcd $env:HOMEPATH
Dirk Thannhäuser

3

Keine Ahnung, ob es eine Funktion unseres Arbeitsanmeldeskripts oder eine Windows-Standardeinstellung ist, aber ich kann cd% HOMEPATH% verwenden, um dies zu erreichen, wobei HOMEPATH eine Umgebungsvariable ist.


Aha. Das Schreiben von% HOMEPATH% nimmt noch viel Zeit in Anspruch. Sie können es auch nicht automatisch vervollständigen. Gibt es eine Möglichkeit, meinen Benutzernamen mit% HOMEPATH% gleichzusetzen, indem ich in cmd.exe einen neuen Befehl eingebe?
Classer

1

Wenn Sie möchten, dass alle Befehlsaufforderungen des Benutzers in dessen "Ausgangsverzeichnis" gestartet werden, erstellen Sie den folgenden Registrierungsschlüssel als erweiterbaren Zeichenfolgenwert (natürlich ohne Anführungszeichen):

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

Wenn Sie möchten, dass nur Ihre Eingabeaufforderungen dies tun:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

Ich mache es zu einer Übung, den Ordner ac: \ Scripts zu behalten, in dem ich eine Batch-Datei vom Typ "autoexec" verwalte, die ich über diesen Schlüssel aufrufe.


Pass auf, das wird Bower und Npm (und Visual Studio) kaputt machen ...
Quandary

1

Mir ist klar, dass dies eine längst abgeschlossene Frage ist, aber nur für die Aufzeichnung. Installieren clink, dies erweitert Ihre Eingabeaufforderung auf so viele Arten. Ja, es ist schwerer als die oben genannten Lösungen, aber dadurch verhält sich das Cmd-Fenster so viel besser.


clink == Leistungsstarke Befehlszeilenbearbeitung im Bash-Stil für cmd.exe
suspectus

Richtig, und der springende Punkt ist, dass ~ in das Verzeichnis User \ {user} aufgelöst wird.
THBBFT

0

Windows ist wirklich zu "Alles über die Benutzeroberfläche" geworden. In Ihrem Fall würde ich einfach die gewünschten Tools besorgen, anstatt zu versuchen, das System nach Ihren Wünschen zu "biegen" ... Die MinGW-Tools sind eine hervorragende kleine Sammlung einiger der am weitesten verbreitete Gnu-Tools ... Ich kann es nur empfehlen, wenn Sie ein Nix-Fan auf Win sind ...

http://www.mingw.org/wiki/MSYS


0

Ich habe dafür ein besseres Terminal ( cmder ) verwendet. Es hat Aliase eingebaut und ist sehr einfach zu bedienen. Lesen Sie hier einfach die Dokumentation zu Aliases .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.