如下说明是翻译PowerShell中: help Move-Item 产生的帮助信息.
译者: Edengundam(马涛)
Move-Item
大纲
从一个位置移动项到另一个位置.
语法
Move-Item [-path] <string[]> [[-destination] <string>] [-include <string[]>] [-exclude <string[]>] [-filter <string>] [-force] [-passThru] [-credential <PSCredential>] [-whatIf] [-confirm] [<CommonParameters>]
Move-Item [-literalPath] <string[]> [[-destination] <string>] [-include <string[]>] [-exclude <string[]>] [-filter <string>] [-force] [-passThru] [-credential <PSCredential>] [-whatIf] [-confirm] [<CommonParameters>]
详细描述
Move-Item cmdlet从一个位置移动一项(包括属性, 内容和子项)到另一个位置. 这些位置必须由同一提供程序支持. 例如, 它能够从一个目录移动一个文件或子目录到另一个目录; 或者从注册表项中移动注册表子项到另一项中. 当你移动一项时, 它被添加到新的位置并从原始位置删除.
参数
-path <string[]>
指定项的当前位置路径. 默认值为当前目录. 允许使用通配符.
强制参数?
|
true
|
参数位置?
|
1
|
默认值
|
<当前位置>
|
允许从管道绑定输入?
|
true (根据值, 根据属性名)
|
允许通配符扩展?
|
true
|
-destination <string>
制定项目被移动到的位置路径. 默认值为当前目录. 允许使用通配符, 但是通配符匹配结果必须是单一的路径.
要改变移动的项名称, 在参数Destination的值中指定一个新的名称.
强制参数?
|
false
|
参数位置?
|
2
|
默认值
|
<当前位置>
|
允许从管道绑定输入?
|
true (根据属性名)
|
允许通配符扩展?
|
true
|
-include <string[]>
移动指定的项. 此参数值用于限定Path参数. 输入一个路径元素或模式, 例如"*.txt"(此参数允许通配符).允许使用通配符.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
true
|
-exclude <string[]>
忽略指定的项. 此参数值用于限定Path参数. 输入一个路径元素或模式, 例如"*.txt"(此参数允许通配符).允许使用通配符.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
true
|
-filter <string>
指定特定provider格式或语言的过滤器.此参数值用于限定Path参数. 过滤器的语法取决于provider(是否支持通配符也依赖provider). 过滤器相比其他参数更加有效, 主要因为provider取值时候使用过滤器, 而不是等到provider将所有内容返回后, 由Windows PowerShell 过滤对象.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-force <SwitchParameter>
在不破坏安全性的前提下, 能够避免影响命令成功执行的限制条件, 例如: Force参数能够覆盖具有只读属性的文件或创建路径中的必要成分, 但是不会改变任何文件的权限.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
False
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-passThru <SwitchParameter>
输出此命令创建的对象到管道中. 默认情况下, 此命令不会将对象输出到管道.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
False
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-credential <PSCredential>
使用其他凭证进行资源访问认证. <Credential>代表着用户名(例如: "User01"或"Domain01/User01") 或者PSCredential对象(例如: 通过Get-Credential cmdlet取得的对象). 如果此处使用用户名, 命令执行时会提示输入该用户密码. 尽管此参数出现, 但是并非所有Windows PowerShell核心cmdlets或providers支持此功能.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
true (根据属性名)
|
允许通配符扩展?
|
false
|
-literalPath <string[]>
指定项的当前位置路径. 与Path不同, LiteralPath的值被直接使用, 不会对任何通配符进行解释. 如果路径中包含了转义字符, 需要将路径用单引号保护. 单引号指示Windows PowerShell不对字符串中的转义字符进行处理.
强制参数?
|
true
|
参数位置?
|
1
|
默认值
|
|
允许从管道绑定输入?
|
true (根据属性名)
|
允许通配符扩展?
|
false
|
-whatIf
描述执行此命令将会发生的现象, 不会真正执行此命令.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
-confirm
执行命令前提示你进行确认.
强制参数?
|
false
|
参数位置?
|
named
|
默认值
|
|
允许从管道绑定输入?
|
false
|
允许通配符扩展?
|
false
|
<公共参数>
此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".
输入类型
String
注意
更多信息, 输入"Get-Help Move-Item -detailed". 需要技术信息, 输入"Get-Help Move-Item -full".
Move-Item能够在相同提供程序支持的不同驱动器上移动文件, 但是只能在同一个驱动器上移动目录.
由于Move-Item命令能够移动项的属性, 内容和子项, 默认情况下所有移动都是递归的.
如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如, "<parameter-name> <value1>, <value2>".
你可以使用Move-Item内建别名, "move", "mv"和"mi". 需要更多信息, 查看 About_Alias.
例1
C:/PS>move-item -path C:/test.txt -destination E:/Temp/tst.txt
此命令从C:驱动器上, 移动Test.txt文件到E:/Temp目录并将名称"test.txt"改为" tst.txt".
例2
C:/PS>move-item -path C:/Temp -destination C:/Logs
此命令移动目录C:/Temp及其所有内容到目录C:/Logs. 目录Temp以及其所有子目录和文件, 都出现在目录Logs中.
例3
C:/PS>move-item -path ./*.txt -destination C:/Logs
此命令移动当前目录(点(.)表示当前目录)下所有文本文件(*.txt)到目录C:/Logs.
例4
C:/PS>gci . -recurse -include *.txt | move-item -dest C:/ps-test/TextFiles
此命令递归地将当前目录及其子目录下的所有文本文件移动到目录C:/TextFiles中.
命令使用了Get-Childitem cmdlet取得当前目录(点(.)表示当前目录)下及其所有子目录下具有*.txt文件扩展名的文件. 它通过指定参数Recurse来进行递归操作, 通过参数Include来限制只取得*.txt文件.
管道运算符(|)将命令的输出发送给Move-Item, 后者将文本文件移动到目录TextFiles中.
如果要移动的文件在C:/Textfiles中存在同名文件, Move-Item显示一个错误信息并继续执行, 但是只移动那些在C:/Textfiles中没有重名的文件. 其他的文件则保留在原始的目录中.
默认情况下Get-Childitem是不会列出隐藏文件. 要移动隐藏文件, 使用Get-Childitem 的参数Force.
例5
C:/PS>move-item hklm:/software/mycompany/* hklm:/software/mynewcompany
此命令将HKLM/Software下的MyCompany注册表项的注册表项和值移动到MyNewCompany项中. 通配符(*)指出MyCompany项中的所有内容都需要被移动, 但是不包括项本身. 此命令中, 参数Path和Destination的名称都可以被省略.
例6
C:/PS>move-item -literalpath 'Logs[Sept`06]' -destination 'Logs[2006]'
此命令移动Logs[Sept`06]目录(及其内容)到目录Logs[2006]中.
使用参数LiteralPath代替Path, 这是因为原始的目录名中包含通配符[和]. 路径使用了单引号(' ')括起来, 这样反引号符号(`)就不会被曲解.
参数Destination不需要是路径的字面值(译注: literal path, 就是改路径本身, 不经过任何的通配符匹配), Destination也必须被括在单引号中, 因为方括号也可能导致被曲解.
相关链接
Clear-Item
Get-Item
Invoke-Item
Set-Item
New-Item
Remove-Item
Rename-Item
Copy-Item
about_namespace