在 Windows 中,更改目錄是文件管理的基本部分,但您願意為您訪問的每個目錄寫下完整路徑嗎?幸運的是,PowerShell 更改目錄命令可以讓您的生活更輕鬆。
在本教程中,您將探索可用於在 PowerShell 中更改目錄的命令,幫助您輕鬆導航您的文件系統。
繼續閱讀,今天就掌握 PowerShell 文件系統導航的基礎知識吧!
先決條件
本教程將進行實踐演示。為了跟上步伐,請確保您的 Windows 系統已安裝了 PowerShell。本教程使用的是 Windows 10 和 PowerShell v7。
從一個驅動器切換到另一個
每個存儲設備,如硬盤或 USB 驅動器,都被分配了一個驅動器字母(即 C:、D:、E:、…Z:)。當您打開 PowerShell 窗口時,默認情況下,提示位於當前驅動器上的用戶配置文件目錄中。
假設您需要經常訪問與當前所在驅動器不同的驅動器上存儲的文件或文件夾。如果是這樣,切換到另一個驅動器就是必要的。
要查看如何從一個驅動器切換到另一個:
1. 打開 PowerShell 並確認提示是否為 C:\Users\admin. 如果是,則您目前位於 C: 驅動器中的 admin 用戶的配置文件目錄,如下所示。

2. 接下來,打開另一個 PowerShell 會話,但這次以系統管理員身份。
下面,提示開始的默認目錄與以常規用戶身份啟動 PowerShell 時不同。 具體而言,提示開始於當前驅動器(C:)中的 Windows 目錄中的 System32 目錄,如下所示。
這種默認行為防止非管理員用戶意外修改關鍵系統文件或運行敏感工具。

3. 執行以下命令來更改當前驅動器為 D:
(或任何可用驅動器)。 這種語法是在 PowerShell 中在不同驅動器之間快速導航的一種方法。
使用此方法在 PowerShell 中切換驅動器時,提示會更改為新驅動器的根目錄,如下所示的輸出。
如您所見,無論 PowerShell 開始的默認目錄是什麼,您總是可以切換到另一個驅動器。

4. 現在,運行以下命令嘗試切換到 D:\Kitty
目錄(或任何其他子目錄)。
你是否遇到了和下面一样的錯誤?這個錯誤是因為你無法一次性切換到子目錄(例如,D:\Kitty)所致。
跳到下一部分查看如何切換到子目錄。

通過cd
命令導航文件系統
在PowerShell中導航多個子目錄是一個常見的任務。但是,是否有一種快速的方式可以在不同的子目錄之間導航?是的!cd
命令,即“更改目錄”,讓您可以快速切換到另一個子目錄,而不管您當前的目錄是什麼。
早些時候,
cd
命令用於在命令提示符中導航驅動器和目錄之間。微軟使cd
命令向後兼容,因此您仍然可以在PowerShell中導航目錄。
繼續閱讀,了解如何使用cd
命令導航您的文件系統。
移動到不同驅動器中的目錄
如果您考慮一下,在不同驅動器中的子目錄中跳轉可能會讓您感到困擾。好吧,沒有必要過度思考。您將驚訝地發現cd
命令如何快速地讓您跳轉到另一個驅動器,同時進入其中一個目錄。
運行下面的命令以導航到名為Kitty
的子目錄,在D:*
驅動器中。

在目錄層次結構中向上移動多個級別
使用文件系統管理,或在項目上工作時,您可能經常需要從當前目錄上移一兩個級別。cd 命令支持 ..
表示法,讓您可以有效地切換到當前目錄的父目錄。
這個功能讓您在文件系統中上移一個級別,而不需要指定父目錄的完整路徑。
1. 在下面運行 cd
命令,後面添加一個空格和 ..
表示法,告訴 PowerShell 在目錄層次結構中上移一個級別。
在
cd
命令後面加上空格字符是不必要的,因為命令即使沒有空格也能正常工作。但是添加空格是一種常見的做法,可以提高可讀性,並與其他命令保持一致。
在下面的輸出中,您可以看到提示從 C:\Users\admin\Documents 上移了一個級別到 C:\Users\admin 目錄。請注意,您無需指定完整路徑就能上移到 C:\Users\admin 目錄。

2. 與其向上移動一個級別,請運行以下帶有兩個 ..
表示法的命令,並在每個後面加上反斜杠(\
)。這樣做可以讓您在目錄層次結構中上移兩個級別。
下面,輸出顯示您從 C:\Users\admin\Documents 直接跳到 C:\Users 目錄。

3. 最後,運行以下命令以移動到當前驅動器的根目錄。
如果您在檔案系統中迷失了方向,這個指令很有用,因為您可以快速跳轉到根目錄。這個指令省去了您多次運行cd ..
指令的麻煩。

移動到特定子目錄
就像在目錄層次結構中向上移動一級一樣,移動到特定子目錄也是一個快速的任務。由於可能有很多子目錄,添加類似前面的標記(..
和..\
)將不起作用,您必須指定子目錄的名稱。
運行下面的命令以進入當前目錄(.
)中的一個子目錄(\admin
)。
注意下面您節省了時間和精力,因為您不需要指定完整路徑的C:\Users\admin目錄。

使用 PowerShell Cmdlets 導航文件系統
儘管cd
指令在 PowerShell 中無疑有效,但微軟引入了許多 Cmdlets,如Set-Location
,讓您可以在文件系統中導航。
這些 Cmdlets 提供了比cd
指令更強大的功能,您可以使用它們在不同驅動器之間切換、導航堆疊位置,並在位置歷史記錄中循環遍歷目錄。
敬請關注,看到 PowerShell Cmdlets 在導航您的文件系統中有多強大。
從不同驅動器設置位置
像cd
命令一样,Set-Location
cmdlet允许您从一个目录跳转到另一个目录并直接导航到其中的一个目录。但由于您正在使用PowerShell cmdlet,您必须添加-Path
参数来设置目标位置的路径。
Set-Location
cmdlet将当前工作目录设置为指定的位置。指定的位置可以是以下之一:
- A directory, or subdirectory on the local file system.
- PowerShell中由提供程序支持的任何其他位置。
- 或注册表位置。
要查看Set-Location
cmdlet在导航文件系统中的工作原理:
运行下面的命令,导航到D:
驱动器中-Path
参数指定的Kitty
目录。

如果您觉得输入完整的
Set-Location
cmdlet有点麻烦,您还可以使用其中一个别名,如chdir
和sl
,以导航您的文件系统。别名提供了一种更方便的方式来访问经常使用的命令。
现在,运行下面的命令将工作位置设置为特定的注册表位置。在这种情况下,HKLM:\
路径(一种简写)指的是Windows注册表中的HKEY_LOCAL_MACHINE hive。
這個命令將工作位置設定為註冊表中 HKEY_LOCAL_MACHINE hive 的根目錄。通過其他 PowerShell 命令,您可以訪問並修改註冊表的子鍵和值。

在堆疊位置之間切換(推送和彈出)
快速訪問堆疊位置聽起來很方便。但是可能嗎?是的!Push-Location
和 Pop-Location
cmdlet 允許您按後進先出(LIFO)的順序從命名堆疊中推送和彈出位置。
要導航到堆疊的位置,請按照以下步驟進行:
1. 執行下面的 Push-Location
命令,將當前位置推送到名為 Paths
的堆疊,並將 C:\Program Files\PowerShell\
目錄設置為當前目錄。

2. 接下來,運行下面的命令,將當前位置(C:\Program Files\PowerShell\)推送到同一個 Paths
堆疊的頂部。

3. 運行每個下面的命令,將 Paths
設置為默認堆疊並查看(Get-Location
)堆疊的位置。
以下是您目前堆疊了兩個位置的情況,您最後推送的位置位於頂部。

4. 現在,運行以下Pop-Location
命令兩次,從默認堆疊中彈出頂部的位置,目前是 Paths 堆疊。

請注意,從堆疊中彈出位置會將該位置從堆疊中移除。下面的錯誤表明您已從默認堆疊中彈出所有堆疊的位置。

存儲在變量中的目錄導航
您已經通過不同的方式在文件系統中導航目錄。但是,如果您需要頻繁地訪問特定位置怎麼辦?多次輸入完整路徑或循環查看位置歷史記錄可能很繁瑣。為什麼不將目錄的完整路徑存儲在變量中呢?
通過聲明變量,您可以在不脫頭腦指定路徑的情況下導航到目標目錄。
1. 運行以下命令將C:\Program Files\PowerShell\
目錄存儲到$psh
變量中,並將該位置($psh
)設置為當前目錄。
下面的輸出確認了成功使用變量更改目錄。無論您的當前目錄是什麼,您都可以通過$psh
變量快速導航到C:\Program Files\PowerShell\目錄。
但請注意,此方法僅在當前的PowerShell會話中有效,除非您將變量保留下來,如下一步所示。

2. 接下來,運行以下命令,這些命令不會提供輸出,但將ev_psh
變量作為環境變量(SetEnvironmentVariable
)持久化,並將其值設置為目錄的完整路徑。
3. 最後,運行以下命令,將ev_psh
環境變量的值設置為當前目錄。請確保您所在的目錄與ev_psh
變量中的目錄不同。

在PowerShell的位置歷史記錄中循環遍歷目錄
在PowerShell中循環遍歷目錄的另一種快速方法是使用位置歷史記錄。 -Path
參數告訴Set-Location
cmdlet從位置歷史記錄(上一個和下一個)中導航到另一個目錄,具體取決於指定的值(-
或+
)。
要在PowerShell的位置歷史記錄中循環遍歷目錄:
執行以下命令,將歷史記錄中的位置設置為當前目錄。 +
字符將您前進到位置歷史記錄中的下一個位置,而 -
字符則將您後退到上一個位置。

結論
在選擇受限時,文件系統導航可能會變得棘手。但是使用 PowerShell 更改目錄命令,如 Set-Location
,您有很多選擇。如何更有效地導航您的文件系統完全取決於您。
此外,掌握使用 Push-Location
和 Pop-Location
保存和回憶最近位置的技能是一項寶貴的技能。
這些技巧讓您可以在 PowerShell 中快速、無縫地移動目錄和位置。但要進一步改進,為什麼不考慮學習其他命令,比如 Get-ChildItem
,這可以在您的日常任務中節省大量時間嗎?
Source:
https://adamtheautomator.com/powershell-change-directory/