Czy w wierszu polecenia systemu Windows jest dostępne polecenie skrótu umożliwiające przejście do katalogu domowego bieżącego użytkownika, tak jak w systemie Linux?

104

Jestem przyzwyczajony do używania

cd ~

aby przejść bezpośrednio do mojego katalogu domowego. W wierszu polecenia systemu Windows muszę to zrobić

cd Users\username

aby się tam dostać. Czy istnieje skrót taki jak Linux? Byłoby miło, gdybym mógł się tam dostać

cd username

Czy coś takiego jest możliwe w systemie Windows Vista?

classer
źródło
7
W Uniksie nie ma potrzeby stosowania tyldy. cdbez argumentów przejdzie do katalogu domowego.
pogromca
było takie pytanie tutaj na su, nie mogę go znaleźć.
akira
1
@coneslayer Wiem, ale aby przenieść plik z jednego katalogu do drugiego, należy użyć tyldy.
classer
Tak proste jakcd %userprofile%
subtelny poszukiwacz
Możesz użyć Windows Power Shell (w systemie Windows XP i nowszych), co pozwala na użycie ~ dla katalogu domowego. Zobacz także ----> stackoverflow.com/questions/9228950/…
franz1

Odpowiedzi:

20

Zawsze możesz umieścić plik .bat gdzieś w% PATH%, co zmienia dla ciebie ścieżkę.

dertoni
źródło
154

Tak, możesz użyć %HOMEPATH%, która jest pełną ścieżką do katalogu domowego użytkownika.

Dostępnych jest wiele innych przydatnych zmiennych, takich jak %OS%(System operacyjny) lub %WINDIR%(Katalog systemu Windows). Listę można znaleźć na Wikipedii: Zmienne środowiskowe .


Uwagi :

W rzeczywistości sprawy są nieco skomplikowane (jak zwykle). %HOMEPATH%zawiera tylko ścieżkę, bez litery dysku, więc nie będzie działać dla cding z innego dysku. Można również użyć %USERPROFILE%, który ma zawierać literę dysku i jest zazwyczaj taka sama jak katalog %HOMEPATH%.

Wartości tych zmiennych, a która z nich jest dla Ciebie odpowiednia, będą zależeć od wersji systemu Windows i wszelkich zmian wprowadzonych przez administratora, ponieważ ich wartości mogą być różne (patrz np. Pytanie Różnica między profilem a ścieżką główną ).

Śleske
źródło
5
Moim zdaniem jest to najbardziej poprawna odpowiedź, ponieważ nie opiera się ona na mocno zakodowanych ścieżkach i żadnych zwariowanych łączach systemu plików, które mogą między nimi występować.
Ed Orsi,
3
To jest poprawna odpowiedź.
Frederik Krautwald
To uratowało mi życie! Po przeanalizowaniu wielu innych odpowiedzi z różnych pytań. Jeszcze raz! To działało dla mnie i powinno być oznaczone jako odpowiedź na to pytanie.
Patricia,
@MissLucy: Cieszę się, że ci pomogłem. Co do przyjęcia odpowiedzi: decyzja należy do OP. Możesz dodać komentarz do pytania, aby je ostrzec.
sleske
zamiast tego użyj% USERPROFILE%.
JJS
21

Dwie inne opcje, z których obie można dodać do skryptu i wykonać automatycznie w sposób podobny do odpowiedzi BillP3rd.

To jeszcze dwie postacie, ale ...

SET ~=%HOMEPATH%    
CD %~%

lub...

CD %~%\Desktop

Lub...

doskey ~=cd %homepath%
~

Oczywiście nie można tego użyć ~na ścieżkach, ale szybkie pisanie „skoku do mojego domu” ~ Enterjest dość szybkie.

Carl
źródło
1
Żartujesz sobie z doskey ??? Mam teraz jeden skrót char do dowolnego folderu, do którego mam ochotę na cd. To powinna być odpowiedź nr 1.
Andrew
9

Utworzyłem plik .cmd w katalogu na mojej ścieżce i nadałem mu nazwę „cd ~ .cmd”. Jego zawartość to:

@cd %HOMEPATH%

Więc mogę wpisać „cd ~” z dowolnego miejsca, aby dostać się do mojego katalogu domowego. Nie to samo, co „cd ~” (zwróć uwagę na brakującą spację), ale wystarczająco blisko dla mnie.

Jaime de los Hoyos M.
źródło
2
Najbardziej sprytna odpowiedź. Połączenie twojego z tą odpowiedzią Kenny'ego Evitta daje najlepsze rozwiązanie.
Sнаđошƒаӽ
7

Odpowiedź sleske jest prawie dokładnie poprawna, ale nie zawsze działa.

Jeśli twój katalog domowy jest w konfiguracji udziału sieciowego jako dysk zamapowany, uruchom następujące czynności bez względu na dysk bieżącego katalogu:

cd /D %HOMEDRIVE%%HOMEPATH%

/DPrzełącznik jest konieczne, aby umożliwić cdzmianę dysków.

Kenny Evitt
źródło
5

Czy istnieje skrót C:\Users\<current user>\?

Nie ma bezpośredniego skrótu.

Istnieje kilka różnych rozwiązań (patrz poniżej).

  1. Użyj zmiennej środowiskowej razem z cdlubcd /d

  2. Użyj substlub, net useaby utworzyć mapowanie na inną literę dysku.

  3. Zainstaluj cygwini użyjbash

  4. Użyj powershell- obsługuje PowerShell~

Ostatnie rozwiązanie jest prawdopodobnie najprostsze, jeśli jesteś przygotowany do użycia powershellzamiast cmd.


Rozwiązanie 1: Użyj zmiennej środowiskowej razem z cdlubcd /d

Jeśli chcesz regularnie przechodzić do tego katalogu, uruchom następującą komendę:

setx DOCS %USERPROFILE%

Spowoduje to trwałe ustawienie zmiennej środowiskowej DOCS, ale aby z niej skorzystać, musisz najpierw uruchomić nową cmdpowłokę, a następnie zmienna jest zdefiniowana i gotowa do użycia:

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

Aby zmienić katalog z dowolnej lokalizacji, użyj następującego polecenia:

cd /d %DOCS%

Jeśli jesteś już na dysku c:, możesz po prostu użyć:

cd %DOCS%

Utwórz plik wsadowy ( docs.cmd) i umieść go gdzieś w swoim PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Następnie możesz po prostu pisać, docsniezależnie od bieżącej lokalizacji, a zabierze Cię toC:\Users\<current user>


Rozwiązanie 2: Użyj substlub, net useaby utworzyć mapowanie na inną literę dysku.

Możesz użyć subst:

subst x: %USERPROFILE%

I wtedy

x:

Niestety mapowania dysków nie utrzymują się podczas ponownego uruchamiania.

net use będzie się powtarzał po ponownym uruchomieniu, na przykład:

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

Zobacz odpowiedzi w temacie Jak utrwalić mapowanie SUBST podczas ponownego uruchamiania? po szczegółowe instrukcje.


Rozwiązanie 3: Zainstaluj cygwini użyjbash

Możesz rozważyć instalację cygwin :

Cygwin to:

  • duży zbiór narzędzi GNU i Open Source, które zapewniają funkcjonalność podobną do dystrybucji Linuksa w systemie Windows.

Po zainstalowaniu programu cygwin możesz uruchomić go bashw terminalu cygwin i odpowiednio ustawić zmienną środowiskową bash HOME.

Alternatywy dla cygwina obejmują msys (MingW) :

MSYS to zbiór narzędzi GNU, takich jak bash, make, gawk i grep, które umożliwiają tworzenie aplikacji i programów zależnych od tradycyjnie uniksowych narzędzi. Ma on na celu uzupełnienie MinGW i braków powłoki cmd.

I Git dla Windows :

Git dla Windows zapewnia emulację BASH używaną do uruchamiania Gita z wiersza poleceń. * Użytkownicy systemu NIX powinni poczuć się jak w domu, ponieważ emulacja BASH zachowuje się tak samo jak polecenie „git” w środowiskach LINUX i UNIX.


Rozwiązanie 4: Użyj powershell

Jak wskazano w komentarzu do innego pytania obsługiwanego przez SBI PowerShell ~, możesz po prostu wpisać:

cd ~

Dalsza lektura

  • Indeks AZ wiersza polecenia systemu Windows CMD - doskonałe odniesienie do wszystkich rzeczy związanych z wierszem cmd systemu Windows.
  • cd - Zmień katalog - Wybierz folder (i napęd)
  • setx - Ustaw zmienne środowiskowe na stałe, SETX może być używany do ustawiania zmiennych środowiskowych dla komputera (HKLM) lub aktualnie zalogowanego użytkownika (HKCU).
  • subst - Zastąp literę dysku ścieżką sieciową lub lokalną.
DavidPostill
źródło
W Powershell istnieją dwa dodatkowe sposoby: cd $HOMEorazcd $env:HOMEPATH
Dirk Thannhäuser
3

Nie wiem, czy jest to funkcja naszego skryptu logowania do pracy lub domyślnego systemu Windows, ale mogę to zrobić, używając cd% HOMEPATH%, gdzie HOMEPATH jest zmienną środowiskową.

Rob Cowell
źródło
Widzę. Nadal dużo zajmuje napisanie% HOMEPATH%. Nie możesz też automatycznie go uzupełnić. Czy istnieje sposób, aby moja nazwa użytkownika była równa% HOMEPATH%, wykonując nowe polecenie w cmd.exe?
classer
1

Jeśli chcesz, aby wszystkie polecenia użytkownika uruchamiały się w katalogu „domowym”, utwórz następujący klucz rejestru jako rozwijalną wartość ciągu (oczywiście bez cudzysłowów):

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

Jeśli chcesz, aby wyświetlały się tylko polecenia:

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

Uczyniam praktykę przechowywania folderu ac: \ Scripts, w którym przechowuję plik wsadowy typu „autoexec”, który wywołuję za pomocą tego klucza.

BillP3rd
źródło
Uważaj, to złamie altanę i npm (i Visual Studio) ...
Quandary
1

Zdaję sobie sprawę, że to już dawno zadane pytanie, ale tylko dla przypomnienia. Zainstaluj clink, rozszerza to wiersz polecenia na wiele sposobów. Tak, jest cięższy niż powyższe rozwiązania, ale sprawia, że ​​okno cmd zachowuje się o wiele lepiej.

THBBFT
źródło
clink == potężna edycja linii poleceń w stylu Bash dla cmd.exe
podejrzenie
Zgadza się i chodzi o to, że ~ przechodzi do katalogu User \ {user}.
THBBFT,
0

Windows naprawdę stał się „Wszystko o GUI”, więc w twoim przypadku po prostu dostanę narzędzia, których potrzebujesz, zamiast próbować „zgiąć” system do woli ... Narzędzia MinGW to znakomity mały zbiór niektórych najczęściej używane narzędzia GNU ... Gorąco polecam, jeśli jesteś fanem Nix na Win ...

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

Eddie B.
źródło
0

W tym celu użyłem lepszego terminala ( cmder ). Ma wbudowane aliasy i jest bardzo łatwy w użyciu. Po prostu przeczytaj dokumentację o Aliasach tutaj .

Don Camillo
źródło