Copy-Item
将项目从一个位置复制到名称空间中的另一个位置。 例如,此cmdlet可以将文件复制到文件夹,但是不能将文件复制到证书驱动器。 它不会删除或剪切要复制的项目。 cmdlet复制的那些特定项目取决于PowerShell提供程序。
例如,此cmdlet可以复制文件系统驱动器中的文件和目录以及注册表驱动器中的注册表项和条目。 它可以复制和重命名同一cmdlet中的项目。 在-Destination
参数的值中输入新名称以重命名项目。
语法1
Copy-Item [-Confirm] [-Path <String[]>] [-Destination <String>] [-Filter <String>] [-Force] [-Container] [-Include <String[]>] [-Exclude <String[]>] [-Recurse] [-PassThru] [-Credential <PSCredential>] [-WhatIf] [-FromSession<PSSession>] [-ToSession<PSSession>] [<CommonParameters>]
语法2
Copy-Item [-Confirm] [-LiteralPath<String[]>] [-Destination <String>] [-Filter <String>] [-Force] [-Container] [-Include <String[]>] [-Exclude <String[]>] [-Recurse] [-PassThru] [-Credential <PSCredential>] [-WhatIf] [-FromSession<PSSession>] [-ToSession<PSSession>] [<CommonParameters>]
-Confirm - 在运行cmdlet之前提示确认。
-Path - 此参数中的字符串数组用于指定要复制的项目的路径,接受通配符。
-LiteralPath - 此参数用于指定位置的路径。 它的值与键入时完全一样。 如果路径包含转义符,则将其用单引号引起来。 单引号告诉Windows PowerShell,它不应将任何字符解释为转义序列。
-Destination - 此参数用于指定新位置的路径。 默认为当前位置,不接受通配符。 要重命名要复制的项目,请在-Destination
参数的值中赋予一个新名称。
-Filter - 此参数指定用于限定-Path
参数的过滤器。 FileSystem提供程序是唯一支持使用过滤器的PowerShell提供程序。 此参数效率更高,因为提供程序在cmdlet获取对象时应用筛选器,而不是让Powershell在访问对象后筛选对象。
-Force - 此参数指示此cmdlet复制那些不能更改的项目,例如,复制只读文件或别名。
-Container - 此参数指示此cmdlet在复制操作期间保留容器对象。 默认情况下,此参数设置为True
。
-Include - 此cmdlet包括在操作中的项目被指定为字符串数组。 -Include
参数的值限定-Path
参数。 输入模式或路径元素,例如*.txt
。 接受通配符。 仅当cmdlet包含项目的内容(例如C:\*
,通配符*
用于指定C:
目录的内容)时,-Include
参数才有效。
-Exclude - 此cmdlet在操作中排除的项目指定为字符串数组。 -Exclude
参数的值限定-Path
参数。 输入模式或路径元素,例如*.txt
,接受通配符。 仅当cmdlet包含项目的内容(例如C:\*
,通配符*
用于指定C:
目录的内容)时,-Exclude
参数才有效。
-Recurse - 此参数指示此cmdlet执行递归副本。
-PassThru - 此参数返回一个对象,该对象表示正在使用的项目。 默认它不会产生任何输出。
-Credential - 与PowerShell一起安装的任何提供程序均不支持-Credential
参数。 默认情况下,此参数使用当前用户。
-WhatIf - 此参数显示执行cmdlet将发生的情况。
-FromSession - 此参数用于指定从中复制远程文件的PSSession对象。 使用它时,-path
和-LiteralPath
参数都引用远程计算机上的本地路径。
-ToSession - 此参数用于指定要将远程文件复制到的PSSession对象。 当使用它时,-Destination
参数引用远程计算机上的本地路径。
示例1: 将文件复制到指定位置
PS E:\xntutor\powershell> copy-item "file.txt" -Destination "D:\mydir"
此示例中的cmdlet将file.txt
文件复制到D:\mydir
目录。 原始文件(file.txt
)不会被删除。
示例2: 将目录的内容复制到新目录
PS E:\xntutor\powershell> copy-item -path "E:\xntutor" -destination "D:\workspace"
此示例中的cmdlet复制E:\xntutor
目录中的内容到一个新创建的目录:D:\workspace
。
示例3: 将目录的内容复制到现有目录
PS E:\xntutor\powershell> copy-item -path "E:\xntutor" -destination "D:\powershell" -recurse
此示例中的cmdlet将E:\xntutor
目录的内容复制到现有的D:\powershell
目录中。 未复制xntutor
目录。
如果E:\xntutor
目录包含子目录中的文件,则将完整地复制其文件树。 默认情况下,-Container
参数设置为True
,这将保留目录的结构。
示例4: 将文件复制到指定目录并重命名该文件
PS E:\xntutor\powershell> copy-item "readme.txt" -destination "D:\powershell\readme-new.txt"
此示例中的cmdlet将文件E:\xntutor\powershell\readme.txt
从目录复制到D:\powershell\
目录,并将文件名从readme.txt
更改为readme-new.txt
。