如下说明是翻译
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