Tương đương với Linux ~ ~ (dấu ngã) của Linux trong Windows là gì?


68

Trong Linux, chúng ta có thể đến nhà người dùng bằng cách nhập ~ký tự dấu ngã ( ) sau cd:

cd ~

Làm thế nào để làm điều tương tự trong Windows?

Mỗi lần, tôi cần gõ:

cd C:\Document and Settings\freewind

Điều đó quá nhàm chán.


2
Cân nhắc sử dụng cygwin?
Paul R

8
thực tế, '~' là mặc định cho 'cd' trong hầu hết các hệ vỏ Linux, vì vậy chỉ cần 'cd' là đủ để đến nhà của bạn


4
Câu trả lời đơn giản là "cd ~" .. có nghĩa là, bạn cũng có thể sử dụng cùng một lệnh trong Windows. Tuy nhiên, bạn không nên thử lệnh này trong CMD vì hiện tại nó đã bị lỗi thời và quá trình phát triển của nó bị ngừng lại bởi Microsoft. Sử dụng "Windows PowerShell" và lệnh tương tự sẽ hoạt động trơn tru.
Apple II

3
Tàu PowerShell với Win7 +
Isaac Dontje Lindell

Câu trả lời:


42

cd /d "%HOMEDRIVE%%HOMEPATH%" sẽ làm điều đó - nhưng tôi không chắc nếu bạn coi đó là một cải tiến.

Bạn cũng có thể định nghĩa bí danh cho lệnh trên:

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

Sau này, nó đơn giản cdhome.


4
@Freewind: Bạn phải yêu thích Windows shell mặc định.
Jon

10
@abatishchev: Câu hỏi hay. Câu hỏi này trên SF dường như chỉ ra rằng% USERPROFILE% là thích hợp hơn.
Jon

3
Bạn cũng có thể sử dụng cd ~ làm tên macro, thay vào đó nếu cdhome.
jftuga

3
@abatishchev: Tài khoản Windows NT có thể có đường dẫn "thư mục chính" được đính kèm tách biệt với "thư mục hồ sơ". Cấu hình giữ các cài đặt của bạn (Đăng ký), dữ liệu ứng dụng, v.v. Mặt khác, thư mục chính dành cho các tệp của riêng bạn - khi một chương trình hiển thị hộp thoại "Mở / Lưu" lần đầu tiên, nó sẽ bắt đầu tại thư mục chính. (Windows 95/98 sử dụng nó hơi khác một chút; không thể nhớ chi tiết cụ thể.) Điều này hữu ích trong môi trường Active Directory, để lưu trữ tệp trên mạng chia sẻ nhưng giữ cấu hình cục bộ.
grawity

2
@jftuga: Hoặc thậm chí ~.
grawity

61

Bạn có thể sử dụng cd /d %USERPROFILE%nếu bạn sử dụng cmd.

hoặc bạn có thể sử dụng cd ~nếu bạn sử dụng PowerShell.


4
+1 nhưng cũng thêm các trích dẫn xung quanh biến số (có thể là c:\documents and settings\..., khoảng trắng sẽ phá vỡ nó trừ khi được trích dẫn)
Jon

7
@Jon: cdlà một ngoại lệ. Vì nó luôn luôn có một đối số duy nhất, nên trích dẫn là không cần thiết. (Trên Windows, các chương trình và phần mềm dựng sẵn phải tự phân tích dòng lệnh của chúng, trình bao không làm điều đó.) Tuy nhiên, luôn luôn trích dẫn các đường dẫn một cách thực hành tốt.
grawity

1
@barlop: thường là CommandLineToArgvW () ; thời gian chạy CLR / MinGW / Cygwin cũng tự động sử dụng tương đương của riêng họ trước khi gọi hàm main (). Một số chương trình, tuy nhiên, có các trình phân tích cú pháp được viết hoàn toàn từ đầu, ví dụ, cmd.exechính nó và lập dị của nó /c.
grawity

1
@barlop: Không phải nếu bạn đang cố gắng sử dụng dấu ngoặc kép (hoặc chuyển hướng) như một phần của lệnh đã cho. Là nó /c "C:\foo bar\baz" "my file.txt"hay /c "\"C:\foo bar\baz\" \"my file.txt\""hay /c ""C:\foo bar\baz" "my file.txt""? Điều tồi tệ hơn nữa là việc phân tích cú pháp phụ thuộc vào việc /sđược chỉ định trước đó, sự hiện diện của các ký tự đặc biệt, cho dù thực thi được đặt tên C:\foo bar\bazhay chỉ C:\foo...
grawity 11/11/11

1
@TheLQ Một tập lệnh bó thậm chí còn dễ dàng hơn. Tôi có thể hoàn thành cùng một kết quả bằng cách gõ một ký tự. Xem câu trả lời của tôi dưới đây để mô tả.
weberc2

12

Một khả năng là sử dụng substlệnh từ dấu nhắc lệnh:

subst z: C:\Document and Settings\freewind

Bất cứ khi nào bạn điều hướng đến ổ Z:, bạn sẽ xem thư mục người dùng của mình.

Nhược điểm là bạn cần chạy nó mỗi khi đăng nhập. Tôi đã sử dụng một tệp bó và chỉ cần đặt nó vào thư mục khởi động của mình, nhưng có lẽ có nhiều giải pháp thanh lịch hơn cho việc này.

Lợi ích là không giống như bí danh doskey, nó hoạt động phổ biến (windows explorer, hộp thoại duyệt, v.v.), không chỉ khi thay đổi thư mục tại dấu nhắc lệnh. Nó đặc biệt hữu ích cho các chương trình cũ với hộp thoại duyệt cũ có ký tự ổ đĩa ở cấp cao nhất, thay vì "máy tính để bàn".


Bạn có thể ánh xạ ổ đĩa và làm cho nó tự động ánh xạ lại sau khi đăng nhập. Không cần sử dụng
trạm biến áp

1
@ LưuViênPhúc Có thể không hoàn toàn hợp lý, nhưng tôi có xu hướng tránh các mạng windows chia sẻ mọi thứ trừ khi tôi thực sự phải sử dụng chúng. Tôi cảm thấy như hiệu suất và độ tin cậy là ... không thể đoán trước? Bằng mọi cách nếu bạn có một giải pháp thay thế, tốt hơn, cách làm này, xin vui lòng gửi nó trong câu trả lời của riêng mình vì lợi ích của mọi người :)
mo.

6

Bạn có thể làm được việc này:

cd %homepath%

5
Điều này sẽ bị hỏng nếu bạn đang ở trên một ổ đĩa khác - ví dụ: bạn đang ở trên E:và homedir của bạn đang bậtC:
Piskvor

4

Bạn có thể tạo một tệp bó ~.batcó tên là chứa

@echo off
cd /d %USERPROFILE%

Và thêm nó vào biến PATH của bạn (Bắt đầu -> [nhấp chuột phải vào "Máy tính"] -> Thuộc tính -> "Cài đặt hệ thống nâng cao" [ở cột bên trái] -> "Biến môi trường"

Từ đó, chỉ cần chỉnh sửa biến PATH của bạn để bao gồm thư mục chứa ~.battệp của bạn . (Điều này cho phép bạn gọi tập lệnh của mình từ bất kỳ đâu chỉ bằng tên tệp - không phải là đường dẫn tuyệt đối đến tệp)

Ngoài ra, hãy đảm bảo PATHEXTbiến môi trường của bạn chứa .BATở đâu đó (điều này cho phép bạn nhập ~thay vì ~.bat).

Khi bạn cần sử dụng nó, chỉ cần nhập ~tại dấu nhắc lệnh. Giải pháp này rất bền bỉ - bạn sẽ không phải thiết lập nó mỗi khi bạn khởi chạy shell và bạn sẽ không cần phải hack registry của mình.


2

Thật không may, tôi không biết về một giải pháp hoàn hảo nhưng có một vài lựa chọn khó khăn:

Tùy chọn 1: Đặt ~ thành bí danh lệnh với doskey

doskey ~=cd /d %USERPROFILE%

Điều này sẽ cho phép bạn chỉ cần gõ ~và có nó chdir cho homedir của bạn.

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

Rõ ràng, điều này rút ngắn số lượng tổ hợp phím để về nhà (thậm chí so với Linux), nhưng kém mạnh mẽ hơn vì bạn không thể thực sự sử dụng nó như một phần của một con đường khác hoặc làm nhiều việc với nó ngoài việc chỉ về nhà.

Tùy chọn 2: Đặt ~ là biến

Một tùy chọn khác, nếu bạn muốn một tùy chọn mạnh mẽ hơn là đặt var:

set ~="%USERPROFILE%"

nhưng sử dụng điều này sẽ được sử dụng như:

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

Nó cũng có thể được đưa vào hầu hết các đường dẫn và không giới hạn bạn chỉ đơn giản là về nhà.

Cả hai tùy chọn cùng một lúc

Ngoài ra, bạn có thể thực hiện đồng thời cả hai phương pháp. Nếu bạn có% của nó xung quanh nó, thì nó sẽ sử dụng biến - nếu không nó sẽ coi ~như một lệnh.

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>

Một mẹo khác (liên quan đến kinda):

Điều này ít có khả năng được chấp nhận trên máy công ty, ít nhất là trên PC tại nhà của bạn, để lưu các tổ hợp phím bổ sung, đó không phải là ý tưởng tồi để biến %USERPROFILE%thư mục của bạn thành một tên đơn giản. Như bạn có thể thấy từ các ví dụ của tôi ở trên, thư mục người dùng của tôi là C:\Users\a- Tôi đã luôn luôn có 'aplocher' hoặc 'adamp' và khi tôi đổi thành một chữ cái duy nhất, điều đó thật kỳ diệu.


1

Trong Powershell %variable%cú pháp không hoạt động. Bạn có thể làm được việc này :

cd $env:USERPROFILE

1
Bạn có thể sử dụng cd ~trong PowerShell.
wjandrea

0

Sử dụng PowerShell, bạn có thể thử phương pháp sau để điều hướng các thư mục từ bất kỳ nơi nào miễn là bạn biết tên người dùng của mình và được cấp quyền thư mục tệp.

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

Xem ví dụ dưới đây trong PowerShell (64 bit). Tôi đã thử nghiệm điều này trên hộp Windows 7 Pro 64 bit.

Linux Lilde tương đương trên Windows 7 Pro 64 Bit

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.