cmdlet
Move-Item
将项(包括其属性、内容和子项)从一个位置移到另一个位置。 但这些位置必须由同一提供程序支持。
例如,它可以将文件或子目录从一个目录移动到另一个目录,或将注册表子项从一个项移动到另一个项。 在你移动某个项时,该属性将被添加到新位置,并从其原来的位置删除。
示例 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
Recurse
参数时,
Path
参数的值必须是容器。 使用
Include
参数指定
*.txt
文件扩展名筛选器 (
Get-ChildItem -Path .\* -Include *.txt -Recurse | Move-Item -Destination C:\TextFiles
) 。
示例 5:将注册表项和值移到另一个项
此命令将 中的注册表项
HKLM\Software
和值
MyCompany
移动到
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 之前进行确认。
Type:
SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Credential
随 PowerShell 一起安装的任何提供程序都不支持此参数。
若要模拟其他用户,或在运行此 cmdlet 时提升凭据,请使用
Invoke-Command
。
Default value:Current directory
Accept pipeline input:True
Accept wildcard characters:True
-Exclude
指定此 cmdlet 在操作中排除的一个或多个项作为字符串数组。 此参数值使
Path
参数有效。 请输入路径元素或模式,例如
*.txt
。 允许使用通配符。 仅当命令包含项的内容(例如
C:\Windows\*
),其中通配符指定目录的内容
C:\Windows
时,
Exclude
参数才有效。
Type:
String
[
]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True
-Filter
指定筛选器以限定
Path
参数。
FileSystem
提供程序是支持使用筛选器的唯一已安装 PowerShell 提供程序。 可以在
about_Wildcards
中找到
FileSystem
筛选器语言的语法。 筛选器比其他参数更有效,因为提供程序在 cmdlet 获取对象时应用它们,而不是在检索对象后让 PowerShell 筛选对象。
Type:
String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True
-Force
强制运行命令而不要求用户确认。 不同提供程序有不同的实现。 有关详细信息,请参阅
about_Providers
。
Type:
SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Include
指定此 cmdlet 将在操作中包含的一个项或多个项(作为一个字符串数组)。 此参数值使
Path
参数有效。 请输入路径元素或模式,例如
*.txt
。 允许使用通配符。 仅当命令包含项的内容(例如
C:\Windows\*
),其中通配符指定目录的内容
C:\Windows
时,
Include
参数才有效。
Type:
String
[
]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:True
-LiteralPath
指定指向项的当前位置的路径。
LiteralPath
的值完全按照键入的方式使用。 不会将任何字符解释为通配符。 如果路径包含转义字符,请将其括在单引号 (
'
) 。 单引号指示 PowerShell 不要将任何字符解释为转义序列。
有关详细信息,请参阅
about_Quoting_Rules
。
Type:
String
[
]
Aliases:PSPath
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-PassThru
返回一个对象,该对象表示移动的项。 默认情况下,此 cmdlet 将不产生任何输出。
Type:
SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Path
指定指向项的当前位置的路径。 默认为当前目录。
允许使用通配符。
Type:
String
[
]
Position:0
Default value:Current directory
Accept pipeline input:True
Accept wildcard characters:True
-UseTransaction
在活动事务中使用该命令。 仅当正在执行事务时,此参数才有效。 有关详细信息,请参阅
about_Transactions
。
Type:
SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf
显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。
Type:
SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
String
可以通过管道将包含路径的字符串传递给此 cmdlet。
默认情况下,此 cmdlet 不返回任何输出。
PSObject
使用
PassThru
参数时,此 cmdlet 返回表示移动项的对象。
Windows PowerShell包含以下别名
Move-Item
:
此 cmdlet 将在同一提供程序支持的驱动器之间移动文件,但只会在同一驱动器中移动目录。
Move-Item
由于命令移动项的属性、内容和子项,因此默认情况下,所有移动都是递归的。
此 cmdlet 用于处理由任何提供程序公开的数据。 若要列出会话中可用的提供程序,请键入
Get-PSProvider
。 有关详细信息,请参阅
about_Providers
。