題 在Windows命令提示符下是否有一個快捷命令來訪問當前用戶的主目錄,就像在Linux中一樣?


我習慣使用

cd ~

進入我的主目錄。在Windows命令提示符中我必須這樣做

cd Users\username

到那裡。有像Linux這樣的捷徑嗎?如果我可以通過這樣做到那裡會很好

cd username

在Windows Vista中是否可以這樣?


89
2017-07-28 09:47


起源


在Unix中,不需要代字號。 cd 沒有參數將更改為您的主目錄。 - coneslayer
這裡有一個像su這樣的問題,找不到它。 - akira
@coneslayer我知道但是要將文件從一個目錄移動到另一個目錄,你可以使用代字號。 - classer


答案:


你可以隨時在。%PATH%中放置一個.bat-File,它會為你改變路徑。


17
2017-07-28 10:47





是的,你可以使用 %HOMEPATH%,這是用戶主目錄的完整路徑。

還有很多其他有用的變量,例如 %OS% (操作系統),或 %WINDIR% (Windows系統目錄)。看到 維基百科:環境價值觀 列表。


筆記

實際上,事情有點複雜(像往常一樣)。 %HOMEPATH% 只包含路徑,沒有驅動器號,所以不適用 cd來自不同的驅動器。你也可以使用 %USERPROFILE%, 哪一個  包含驅動器號,通常與目錄相同 %HOMEPATH%

這些變量的值以及哪一個適合您,取決於Windows版本和管理員的任何更改,因為它們的值可能不同(請參閱例如問題) 配置文件和主路徑之間的差異 )。


132
2017-07-28 10:12



在我看來,這是最正確的答案,因為它不依賴於硬編碼路徑和它們之間可能存在的任何古怪的文件系統鏈接。 - Ed Orsi
這是正確的答案。 - Frederik Krautwald
這救了我的命!在從不同的問題中查看了很多其他答案之後。再次!這對我有用,應該標記為這個問題的答案。 - Patricia
@MissLucy:我很高興它幫助了你。至於接受答案:由OP來決定。您可以在問題中添加評論以提醒他們。 - sleske
請改用%USERPROFILE%。 - JJS


另外兩個選項都可以添加到腳本中,並以與BillP3rd的答案類似的方式自動執行。

還有兩個角色,但......

SET ~=%HOMEPATH%    
CD %~%

要么...

CD %~%\Desktop

要么...

doskey ~=cd %homepath%
~

當然你不能用這個 ~ 在路徑,但作為一個快速“跳到我的家庭目錄”打字 ~  輸入 非常快


19
2018-01-18 18:26





我在路徑中的目錄上創建了一個.cmd文件,並將其命名為“cd~.cmd”。其內容是:

@cd %HOMEPATH%

所以我可以從任何地方輸入“cd~”到我的主目錄。與“cd~”不一樣(注意缺失的空間)但對我來說足夠接近。


8
2018-05-07 18:33



最聰明的回答。結合你的 Kenny Evitt的回答 提供最佳解決方案。 - Sнаđошƒаӽ


sleske的回答 幾乎完全正確,但它並不總是有效。

如果您的主目錄在網絡共享設置上作為映射驅動器,請運行以下命令,而不管當前目錄的驅動器如何:

cd /D %HOMEDRIVE%%HOMEPATH%

/D 允許切換是必要的 cd 改變驅動器。


6
2017-07-31 18:39



cd / d%homedrive %% homepath%如何作為單行? - james


是否有快捷方式 C:\Users\<current user>\

沒有直接的捷徑。

有幾種不同的解決方案(見下文)。

  1. 與環境變量一起使用 cd 要么 cd /d

  2. 使用 subst 要么 net use 創建到另一個驅動器號的映射。

  3. 安裝 cygwin 並使用 bash

  4. 使用 powershell  - powershell支持 ~

如果您準備使用,最後的解決方案可能是最簡單的 powershell 代替 cmd


解決方案1:與環境變量一起使用 cd 要么 cd /d

如果要定期更改到此目錄,請運行以下命令:

setx DOCS %USERPROFILE%

這將永久設置環境變量 DOCS,但為了使用它你需要先開始一個新的 cmdshell,然後定義變量並準備使用:

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

要從任何位置更改目錄,請使用以下命令:

cd /d %DOCS%

如果你已經開車了 c: 你可以使用:

cd %DOCS%

創建批處理文件(docs.cmd並把它放在你的某個地方 PATH

docs.cmd:

@echo off
cd /d %DOCS%

然後你可以輸入 docs 無論您當前的位置如何,都會帶您前往 C:\Users\<current user>


解決方案2:使用 subst 要么 net use 創建到另一個驅動器號的映射。

您可以使用 subst

subst x: %USERPROFILE%

然後

x:

不幸的是,驅動器映射不會在重新啟動後持續存在。

net use 將繼續重新啟動,例如:

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

查看答案 如何使SUBST映射在重新啟動後保持不變? 詳細說明。


解決方案3:安裝 cygwin 並使用 bash

你可以考慮安裝 cygwin的

Cygwin是:

  • 大量GNU和開源工具,提供類似於Windows上的Linux發行版的功能。

一旦安裝了cygwin,就可以運行了 bash 在cygwin終端中設置bash環境變量 HOME 作為適當的。

cygwin的替代品包括 msys(MingW)

MSYS是一組GNU實用程序,如bash,make,gawk和grep,可以構建依賴於傳統UNIX工具的應用程序和程序。它旨在補充MinGW和cmd shell的缺陷。

Git for Windows

Git for Windows提供了一個BASH仿真,用於從命令行運行Git。 * NIX用戶應該感到賓至如歸,因為BASH仿真的行為就像LINUX和UNIX環境中的“git”命令一樣。


解決方案4:使用 powershell

正如在另一個問題的評論中指出的那樣 SBI powershell支持 ~ 你可以輸入:

cd ~

進一步閱讀

  • Windows CMD命令行的A-Z索引  - 與Windows cmd相關的所有內容的出色參考。
  • 光盤  - 更改目錄 - 選擇文件夾(和驅動器)
  • SETX  - 永久設置環境變量,SETX可用於為機器(HKLM)或當前登錄用戶(HKCU)設置環境變量。
  • SUBST  - 替換網絡或本地路徑的驅動器號。

5
2018-03-04 12:16



如果在Powershell上還有另外兩種方法: cd $HOME 和 cd $env:HOMEPATH - Dirk Thannhäuser


Dunno如果它是我們的工作登錄腳本或Windows默認的功能,但我可以使用cd%HOMEPATH%來實現,其中HOMEPATH是一個環境變量。


3
2017-07-28 10:01



我知道了。寫%HOMEPATH%還需要很多。你也無法自動完成它。有沒有辦法通過在cmd.exe中創建一個新命令使我的用戶名等於%HOMEPATH%? - classer


如果您希望所有用戶的命令提示在其“home”目錄中啟動,請將以下註冊表​​項創建為可擴展字符串值(當然沒有引號):

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

如果你只想要 您的 命令提示執行此操作:

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

我保留了一個c:\ Scripts文件夾,我保留了一個“autoexec”類型的批處理文件,我通過這個鍵調用它。


1
2017-08-17 00:42



注意,這將打破涼亭和npm(和Visual Studio)...... - Quandary


我意識到這是一個很久以來的問題,但僅僅是為了記錄。安裝 clink,這會以多種方式擴展您的命令提示符。是的,它比上面的解決方案更重,但它使cmd窗口表現得更好。


1
2018-02-20 14:22



clink ==強大的bash風格的cmd.exe命令行編輯 - suspectus
是的,整點是〜解析為User \ {user}目錄。 - THBBFT