#PowerShell 的 Copy-Item 命令
Copy-Item
[-Path] <String[]>
[[-Destination] <String>]
[-Container]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-FromSession <PSSession>]
[-ToSession <PSSession>]
[<CommonParameters>]
功能
将项从一个位置复制到另一个位置,原项不会被删除。
类型
Cmdlet,属于 Microsoft.PowerShell.Management。
参数
[-Path] <String[]>- 要复制的项路径;支持通配符-LiteralPath <String[]>- 按字面值解释路径,不将任何字符视为通配符[-Destination] <String>- 新位置,默认为当前目录;可以同时指定新名称-Recurse- 递归复制子项-Container- 保留容器对象;默认值为True-Force- 覆盖无法直接修改的项,例如只读文件-PassThru- 返回表示被复制项的对象;默认不产生输出-Filter <String>- 由提供程序执行的筛选器,通常比-Include更高效-Include <String[]>- 只包含匹配的项;仅对-Path的通配符匹配结果生效-Exclude <String[]>- 排除匹配的项;仅对-Path的通配符匹配结果生效
完整参数可使用
Get-Help Copy-Item -Full查看。
-Include和-Exclude只过滤-Path解析出的顶层结果,不会过滤-Recurse发现的子项。
#示例
复制文件到目录
> Copy-Item -Path ./config.json -Destination ./backup
- 原文件保留,副本放入
./backup目录。
复制并重命名
> Copy-Item -Path ./report.txt -Destination ./report.old.txt
- 在
-Destination中指定新文件名即可同时完成复制和重命名。
递归复制目录内容
> Copy-Item -Path ./src/* -Destination ./backup -Recurse
- 路径末尾的
*表示复制目录内容,而不是目录本身。
复制目录本身
> Copy-Item -Path ./src -Destination ./backup/src -Recurse
- 目标目录不存在时会创建;
-Recurse会保留子目录结构。