Move-Item
將專案從一個位置移至另一個位置。
語法
Path (預設值)
Move-Item
[-Path] <String[]>
[[-Destination] <String>]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
LiteralPath
Move-Item
[[-Destination] <String>]
-LiteralPath <String[]>
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Description
Move-Item Cmdlet 會將專案,包括其屬性、內容和子專案,從一個位置移至另一個位置。 相同的提供者必須支持這些位置。
例如,它可以將檔案或子目錄從某個目錄移至另一個目錄,或將登錄子機碼從一個機碼移至另一個機碼。 當您移動專案時,它會新增至新位置,並從其原始位置刪除。
範例
範例 1:將檔案移至另一個目錄並重新命名
這個指令會將 Test.txt 檔案從 C: 磁碟驅動器移至 E:\Temp 目錄,並將它從 test.txt 重新命名為 tst.txt。
Move-Item -Path C:\test.txt -Destination E:\Temp\tst.txt
範例 2:將目錄及其內容移至另一個目錄
此命令會將 C:\Temp 目錄及其內容移至 C:\Logs 目錄。
Temp 目錄及其所有子目錄和檔案,然後出現在 Logs 目錄中。
Move-Item -Path C:\Temp -Destination C:\Logs
範例 3:將指定擴展名的所有檔案從目前目錄移至另一個目錄
此命令會將目前目錄中的所有文本檔(*.txt)移至 . 目錄(以點(C:\Logs)表示。
Move-Item -Path .\*.txt -Destination C:\Logs
範例 4:以遞歸方式將指定擴展名的所有檔案從目前目錄移至另一個目錄
此命令會將所有文字檔從目前目錄和所有子目錄遞歸移至 C:\TextFiles 目錄。
Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"
命令會使用 Get-ChildItem Cmdlet 來取得目前目錄中的所有子專案(以點 (.) 表示的子目錄,以及擴展名為 *.txt 的子目錄。 它會使用 Recurse 參數來使擷取遞歸,而 Include 參數可將擷取限制為 *.txt 檔案。
管線運算子 (|) 會將此命令的結果傳送至 Move-Item,以將文本檔移至 TextFiles 目錄。
如果要移至 C:\Textfiles 的檔案具有相同的名稱,Move-Item 會顯示錯誤並繼續,但只會將每個名稱的一個檔案移至 C:\Textfiles。 其他檔案會保留在原始目錄中。
如果 Textfiles 目錄(或目的地路徑的任何其他專案)不存在,命令就會失敗。 即使您使用 Force 參數,也不會為您建立遺漏的目錄。
Move-Item 將第一個專案移至名為 Textfiles 的檔案,然後顯示錯誤,說明檔案已經存在。
此外,根據預設,Get-ChildItem 不會移動隱藏的檔案。 若要移動隱藏的檔案,請使用 Force 參數搭配 Get-ChildItem。
備註
在 Windows PowerShell 2.0 中,使用 Cmdlet 的 Get-ChildItem 參數時,Path 參數的值必須是容器。 使用 Include 參數來指定 *.txt 擴展名篩選條件 (Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles)。
範例 5:將登錄機碼和值移至另一個機碼
此命令會將 MyCompany 中 HKLM\Software 登錄機碼中的登錄機碼和值移至 MyNewCompany 機碼。 通配符 (*) 表示應該移動 MyCompany 索引鍵的內容,而不是索引鍵本身。 在此命令中,會省略選擇性 Path 和 Destination 參數名稱。
Move-Item "HKLM:\software\mycompany\*" "HKLM:\software\mynewcompany"
範例 6:將目錄及其內容移至指定目錄的子目錄
此命令會將 Logs[Sept`06] 目錄(及其內容)移至 Logs[2006] 目錄。
Move-Item -LiteralPath 'Logs[Sept`06]' -Destination 'Logs[2006]'
使用 LiteralPath 參數,而不是 Path,因為原始目錄名稱包含左括號和右括號字元 ([ 和 ])。 路徑也會以單引號(')括住,因此反引號符號(`)不會被誤解。
Destination 參數也必須以單引弧括住,因為它包含可誤解的括弧。
參數
-Confirm
在執行 Cmdlet 之前,提示您進行確認。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | cf |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Credential
備註
任何與 PowerShell 一起安裝的提供者都不支援此參數。 若要模擬其他使用者,或在執行此 Cmdlet 時提升您的認證,請使用 Invoke-Command。
參數屬性
| 類型: | PSCredential |
| 預設值: | Current user |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Destination
指定要移動專案之位置的路徑。 預設值是目前的目錄。 允許通配符,但結果必須解析為單一位置。
若要重新命名要移動的專案,請在 Destination 參數的值中指定新的名稱。
參數屬性
| 類型: | String |
| 預設值: | Current directory |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | 1 |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-Exclude
指定要在此 Cmdlet 作業中排除的項目或多項,並以字串陣列形式表示。 此參數的值對 路徑 參數進行限定。 輸入路徑元素或模式,例如 *.txt。 允許使用通配符字元。 只有在命令包含項目的內容,例如 時,C:\Windows\* 參數才有效,其中通配符會指定 C:\Windows 目錄的內容。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Filter
指定篩選條件,以限定 Path 參數。 FileSystem 提供者是唯一已安裝且支援使用篩選的 PowerShell 提供者。 您可以在 about_Wildcards中找到 FileSystem 篩選語言的語法。 篩選比其他參數更有效率,因為提供者會在 Cmdlet 取得物件時套用它們,而不是在擷取對象之後讓 PowerShell 篩選物件。
參數屬性
| 類型: | String |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Force
強制命令執行,而不要求使用者確認。 實作會因提供者而異。 如需詳細資訊,請參閱 about_Providers。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Include
指定此 Cmdlet 在操作中包含的一個或多個專案,這些專案是以字串陣列的形式表示。 此參數的值對 路徑 參數進行限定。 輸入路徑元素或模式,例如 *.txt。 允許使用通配符字元。 只有當命令包含項目的內容,例如 時,C:\Windows\* 參數才有效,其中通配符會指定 C:\Windows 目錄的內容。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-LiteralPath
指定專案目前位置的路徑。
LiteralPath 的值會按原本輸入的方式使用。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它(')。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。
如需詳細資訊,請參閱 about_Quoting_Rules。
參數屬性
| 類型: | String[] |
| 預設值: | None |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | PSPath |
參數集
LiteralPath
| Position: | Named |
| 必要: | True |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-PassThru
傳回物件,表示移動的專案。 根據預設,此 Cmdlet 不會產生任何輸出。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-Path
指定專案目前位置的路徑。 預設值是目前的目錄。 允許使用通配符字元。
參數屬性
| 類型: | String[] |
| 預設值: | Current directory |
| 支援萬用字元: | True |
| 不要顯示: | False |
參數集
Path
| Position: | 0 |
| 必要: | True |
| 來自管線的值: | True |
| 來自管線按屬性名稱的值: | True |
| 來自剩餘引數的值: | False |
-UseTransaction
在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_Transactions。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | usetx |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
-WhatIf
顯示 Cmdlet 執行時會發生什麼事。 指令未執行。
參數屬性
| 類型: | SwitchParameter |
| 預設值: | False |
| 支援萬用字元: | False |
| 不要顯示: | False |
| 別名: | 無線 |
參數集
(All)
| Position: | Named |
| 必要: | False |
| 來自管線的值: | False |
| 來自管線按屬性名稱的值: | False |
| 來自剩餘引數的值: | False |
CommonParameters
此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。
輸入
String
您可以傳送包含路徑的字串到此 Cmdlet。
輸出
None
根據預設,此 Cmdlet 不會傳回任何輸出。
PSObject
當您使用 PassThru 參數時,這個 Cmdlet 會傳回代表已移動項目的物件。
備註
Windows PowerShell 包含下列 Move-Item的別名:
mimovemv此 Cmdlet 會在相同提供者支援的磁碟驅動器之間移動檔案,但只會在相同的磁碟驅動器內行動目錄。
由於
Move-Item命令會移動專案的屬性、內容和子專案,因此所有行動預設都會遞歸。此 Cmdlet 的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入
Get-PSProvider。 如需詳細資訊,請參閱 about_Providers。