Jaki jest odpowiednik „~” Linuksa (tylda) w systemie Windows?

72

W systemie Linux możemy przejść do strony domowej użytkownika, wprowadzając ~znak tylda ( ) po cd:

cd ~

Jak zrobić to samo w systemie Windows?

Za każdym razem muszę wpisać:

cd C:\Document and Settings\freewind

To zbyt nudne.

Freewind
źródło
2
Zastanawiasz się nad cygwinem?
Paul R
8
właściwie „~” jest domyślnym ustawieniem „cd” w większości powłok Linuksa, więc wystarczy „cd”, aby przejść do twojego katalogu głównego
@Arnout: Patrz stackoverflow.com/questions/998626/...
abatishchev
4
Odpowiedź brzmi: „cd ~” .. oznacza, że ​​możesz użyć tego samego polecenia również w systemie Windows. Ale nie powinieneś próbować tego polecenia w CMD, ponieważ jest ono przestarzałe i jego rozwój został przerwany przez Microsoft. Użyj „Windows PowerShell”, a to samo polecenie będzie działać płynnie.
Apple II
3
PowerShell jest dostarczany z Win7 +
Isaac Dontje Lindell,

Odpowiedzi:

43

cd /d "%HOMEDRIVE%%HOMEPATH%" zrobiłbym to - ale nie jestem pewien, czy uważasz to za poprawę.

Możesz także zdefiniować alias dla powyższego polecenia:

doskey cdhome=cd /d "%HOMEDRIVE%%HOMEPATH%"

Po tym to po prostu cdhome.

Jon
źródło
4
@ Freewind: Musisz pokochać domyślną powłokę systemu Windows.
Jon
10
@abatishchev: Dobre pytanie. To pytanie dotyczące SF wydaje się wskazywać, że preferowany jest% USERPROFILE%.
Jon
3
Możesz także użyć cd ~ jako nazwy makra, zamiast cdhome.
jftuga
3
@abatishchev: Konta Windows NT mogą mieć dołączoną ścieżkę „katalogu domowego”, która jest niezależna od „katalogu profilu”. Profil zachowuje twoje ustawienia (rejestr), dane aplikacji i tym podobne. Z drugiej strony katalog domowy jest przeznaczony do twoich plików - gdy program wyświetli okno dialogowe „Otwórz / Zapisz” po raz pierwszy, rozpocznie się od katalogu domowego. (Windows 95/98 używał go nieco inaczej; nie pamiętam szczegółów). Jest to przydatne w środowiskach Active Directory, do przechowywania plików w udziale sieciowym, ale utrzymywania profilu lokalnego.
grawity
2
@jftuga: Lub nawet ~.
grawity
62

Możesz użyć, cd /d %USERPROFILE%jeśli używasz cmd.

lub możesz użyć, cd ~jeśli używasz PowerShell.

Nocturn
źródło
4
+1, ale także dodaj cudzysłowy wokół zmiennej (być może c:\documents and settings\..., spacje będą ją łamać, chyba że będzie cytowane)
Jon
7
@Jon: cdjest wyjątkiem. Ponieważ zawsze wymaga jednego argumentu, cytowanie nie jest konieczne. (W systemie Windows programy i wbudowane narzędzia muszą sami parsować swoje linie poleceń, powłoka tego nie robi.) Jednak dobrą praktyką jest zawsze cytowanie ścieżek .
grawity
1
@barlop: zwykle CommandLineToArgvW () ; środowiska wykonawcze CLR / MinGW / Cygwin również automatycznie używają własnego odpowiednika przed wywołaniem main (). Niektóre programy mają jednak parsery napisane całkowicie od zera, na przykład cmd.exesam i jego zwariowane /c.
grawity
1
@barlop: Nie, jeśli próbujesz użyć cudzysłowów (lub przekierowań) jako części podanego polecenia. Czy to /c "C:\foo bar\baz" "my file.txt"czy /c "\"C:\foo bar\baz\" \"my file.txt\""czy /c ""C:\foo bar\baz" "my file.txt""? Co gorsza, parsowanie zależy od tego, czy /szostało określone wcześniej, od obecności znaków specjalnych, od tego, czy plik wykonywalny ma nazwę, C:\foo bar\bazczy po prostu C:\foo...
grawity 11.11.11
1
@TheLQ Skrypt wsadowy jest jeszcze łatwiejszy. Mogę osiągnąć ten sam wynik, wpisując pojedynczy znak. Opis mojej odpowiedzi znajduje się poniżej.
weberc2
13

Jedną z możliwości jest użycie substpolecenia z wiersza polecenia:

subst z: C:\Document and Settings\freewind

Za każdym razem, gdy przejdziesz do dysku Z :, będziesz patrzył na folder użytkownika.

Minusem jest to, że musisz go uruchamiać przy każdym logowaniu. Użyłem pliku wsadowego i po prostu umieściłem go w folderze startowym, ale są prawdopodobnie bardziej eleganckie rozwiązania tego problemu.

Zaletą jest to, że w przeciwieństwie do aliasu doskey, działa on uniwersalnie (Eksplorator Windows, okno dialogowe przeglądania itp.), Nie tylko podczas zmiany katalogów w wierszu polecenia. Jest to szczególnie przydatne w przypadku starych programów ze starymi oknami dialogowymi przeglądania, które mają litery dysków na najwyższym poziomie, a nie „na pulpicie”.

mo.
źródło
Możesz zmapować dysk i ustawić go ponownie automatycznie po zalogowaniu. Nie trzeba używać subst
phuclv
1
@ LưuVĩnhPhúc To może nie być całkowicie logiczne, ale staram się unikać współdzielenia przez Windows sieci rzeczy, chyba że naprawdę muszę ich używać. Czuję, że wydajność i niezawodność są ... nieprzewidywalne? Oczywiście, jeśli masz alternatywny, lepszy sposób na zrobienie tego, proszę zamieść go we własnej odpowiedzi z korzyścią dla wszystkich :)
mo.
6

Możesz to zrobić:

cd %homepath%
Bali C.
źródło
5
To się E:C:
zepsuje,
4

Możesz utworzyć plik wsadowy o nazwie ~.batzawierający

@echo off
cd /d %USERPROFILE%

I dodaj go do zmiennej PATH (Start -> [kliknij prawym przyciskiem myszy „Komputer”] -> Właściwości -> „Zaawansowane ustawienia systemu” [w lewej kolumnie] -> „Zmienne środowiskowe”

Następnie edytuj zmienną PATH, aby uwzględnić folder zawierający ~.batplik. (Pozwala to na wywołanie skryptu z dowolnego miejsca przy użyciu samej nazwy pliku - nie bezwzględnej ścieżki do pliku)

Upewnij się także, że twoja PATHEXTzmienna środowiskowa .BATgdzieś zawiera (pozwala to pisać ~zamiast ~.bat).

Gdy musisz go użyć, po prostu wpisz ~w wierszu polecenia. To rozwiązanie jest trwałe - nie musisz go konfigurować za każdym razem, gdy uruchamiasz powłokę i nie musisz hakować rejestru.

weberc2
źródło
2

Niestety nie znam idealnego rozwiązania, ale istnieje kilka hackujących opcji:

Opcja 1: Ustaw ~ jako alias polecenia z doskey

doskey ~=cd /d %USERPROFILE%

Umożliwi to po prostu wpisanie ~i wprowadzenie go do katalogu domowego.

C:\>~
C:\Users\a>

Oczywiście skraca to liczbę naciśnięć klawiszy, aby wrócić do domu (nawet w porównaniu z Linuksem), ale jest mniej niezawodne, ponieważ nie można tak naprawdę użyć go jako części innej ścieżki lub zrobić z nim wiele poza zwykłym cd'ingiem do domu.

Opcja 2: Ustaw ~, aby była zmienną

Inną opcją, jeśli chcesz bardziej niezawodną opcję, jest ustawienie var:

set ~="%USERPROFILE%"

ale użycie tego byłoby takie jak:

E:\>cd /d %~%
C:\Users\a>

Można go również wstrzykiwać w większość ścieżek i nie ogranicza cię do zwykłego nagrywania płyt CD w domu.

Obie opcje jednocześnie

Możesz także wdrożyć obie metody jednocześnie. Jeśli masz wokół niego%, to użyje zmiennej - w przeciwnym razie będzie traktowane ~jak polecenie.

C:\>:: ECHO (display) THE VALUE OF %~%
C:\>echo %~%
C:\Users\a

C:\>:: ChDir to ~\DESKTOP
C:\>cd /d %~%\Desktop

C:\Users\a\Desktop>:: USE THE ~ COMMAND
C:\Users\a\Desktop>~

C:\Users\a>

Jeszcze jedna wskazówka (trochę związana):

Jest to mniej prawdopodobne, że jest to do zaakceptowania na komputerze korporacyjnym, przynajmniej na komputerze domowym, w celu zaoszczędzenia dodatkowych naciśnięć klawiszy, nie jest złym pomysłem, aby twój %USERPROFILE%katalog był prostą nazwą. Jak widać z powyższych przykładów, moim C:\Users\akatalogiem użytkownika jest - zawsze miałem „aplocher” lub „adamp”, a kiedy zmieniłem na jedną literę, było to magiczne.

Adam Plocher
źródło
1

W Powershell %variable%składnia nie działa. Możesz to zrobić :

cd $env:USERPROFILE
Elzo
źródło
2
Możesz używać cd ~w PowerShell.
wjandrea
0

Korzystając z programu PowerShell, możesz wypróbować następującą metodę nawigacji po katalogach z dowolnego miejsca, pod warunkiem, że znasz swoją nazwę użytkownika i masz uprawnienia do katalogu plików.

cd \..\Users\yourUserName\Documents
cd \..\Users\yourUserName\Downloads
cd \..\Users\yourUserName\Desktop
cd \..\Users\yourUserName\music

Zobacz przykład poniżej w PowerShell (64-bitowy). Przetestowałem to na 64-bitowym pudełku systemu Windows 7 Pro.

Odpowiednik Linux Lilde w Windows 7 Pro 64 Bit

Pełna tablica
źródło