[玩转系统] Copy-Item (Microsoft.PowerShell.Management)
作者:精品下载站 日期:2024-12-14 02:12:50 浏览:12 分类:玩电脑
Copy-Item (Microsoft.PowerShell.Management)
Copy-Item
模块 :Microsoft.PowerShell.Management将项目从一个位置复制到另一个位置。
句法
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>]
Copy-Item
-LiteralPath <String[]>
[[-Destination] <String>]
[-Container]
[-Force]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-Recurse]
[-PassThru]
[-Credential <PSCredential>]
[-WhatIf]
[-Confirm]
[-FromSession <PSSession>]
[-ToSession <PSSession>]
[<CommonParameters>]
Copy-Item
[-Path] <string[]>
[[-Destination] <string>]
[-Container]
[-Force]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-PassThru]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Copy-Item
[[-Destination] <string>]
-LiteralPath <string[]>
[-Container]
[-Force]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Recurse]
[-PassThru]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
描述
Copy-Item
cmdlet 将一项从一个位置复制到同一命名空间中的另一个位置。例如,它可以将文件复制到文件夹,但无法将文件复制到证书驱动器。
此 cmdlet 不会剪切或删除正在复制的项目。 cmdlet 可以复制的特定项目取决于公开该项目的 PowerShell 提供程序。例如,它可以复制文件系统驱动器中的文件和目录以及注册表驱动器中的注册表项和条目。
此 cmdlet 可以在同一命令中复制和重命名项目。要重命名项目,请在目标参数的值中输入新名称。要重命名项目而不复制它,请使用 Rename-Item
cmdlet。
示例
示例1:复制文件到指定目录
此示例将 mar1604.log.txt
文件复制到 C:\Presentation
目录。原来的文件没有被删除。
Copy-Item "C:\Wabash\Logfiles\mar1604.log.txt" -Destination "C:\Presentation"
示例 2:将目录内容复制到现有目录
此示例将 C:\Logfiles
目录的内容复制到现有 C:\Drawings
目录中。不会复制 Logfiles
目录。
如果 Logfiles
目录的子目录中有文件,则复制这些子目录时其文件树完好无损。默认情况下,Container 参数设置为True,这会保留目录结构。
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings" -Recurse
笔记
如果路径 C:\Drawings
不存在,cmdlet 会将 Logfiles
文件夹中的所有文件复制到单个文件 C:\Drawings
。
示例 3:将目录和内容复制到新目录
此示例复制 C:\Logfiles
源目录的内容并创建一个新的目标目录。新的目标目录 \Logs
将在 C:\Drawings
中创建。
要包含源目录的名称,请复制到现有目标目录,如示例 2 中所示。或者,将新的目标目录命名为与源目录相同的名称。
Copy-Item -Path "C:\Logfiles" -Destination "C:\Drawings\Logs" -Recurse
笔记
如果路径包含\*
,则所有目录的文件内容(包括子目录树)都将复制到新的目标目录。例如:
Copy-Item -Path "C:\Logfiles\*" -Destination "C:\Drawings\Logs" -Recurse
示例4:复制文件到指定目录并重命名该文件
此示例使用 Copy-Item
cmdlet 将 Get-Widget.ps1
脚本从 \Server01\Share
目录复制到 \Server12\ScriptArchive
目录。作为复制操作的一部分,该命令将项目名称从 Get-Widget.ps1
更改为 Get-Widget.ps1.txt
,以便可以安全地将其附加到电子邮件中消息。
Copy-Item "\Server01\Share\Get-Widget.ps1" -Destination "\Server12\ScriptArchive\Get-Widget.ps1.txt"
示例 5:将文件复制到远程计算机
使用 Contoso\User01
凭据创建名为 Server01 的远程计算机的会话,并将结果存储在名为 $Session
的变量中。
Copy-Item
cmdlet 将 test.log
从 D:\Folder001
文件夹复制到 C:\Folder001_Copy
使用存储在 $Session
变量中的会话信息来访问远程计算机上的文件夹。原来的文件没有被删除。
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "D:\Folder001\test.log" -Destination "C:\Folder001_Copy\" -ToSession $Session
示例 6:将文件夹复制到远程计算机
使用 Contoso\User01
凭据创建名为 Server01 的远程计算机的会话,并将结果存储在名为 $Session
的变量中。
Copy-Item
cmdlet 使用存储在中的会话信息将 D:\Folder002
文件夹复制到远程计算机上的 C:\Folder002_Copy
目录$Session
变量。如果不使用递归开关,则不会复制任何子文件夹或文件。该操作将创建 Folder002_Copy
文件夹(如果该文件夹尚不存在)。
$Session = New-PSSession -ComputerName "Server02" -Credential "Contoso\User01"
Copy-Item "D:\Folder002\" -Destination "C:\Folder002_Copy\" -ToSession $Session
示例 7:将文件夹的全部内容递归复制到远程计算机
将使用 Contoso\User01
凭据创建名为 Server01 的远程计算机的会话,并将结果存储在名为 $Session
的变量中。
Copy-Item
cmdlet 使用以下命令将 D:\Folder003
文件夹中的全部内容复制到远程计算机上的 C:\Folder003_Copy
目录:会话信息存储在 $Session
变量中。复制子文件夹时,其文件树完好无损。该操作将创建 Folder003_Copy
文件夹(如果该文件夹尚不存在)。
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder003\" -Destination "C:\Folder003_Copy\" -ToSession $Session -Recurse
示例 8:将文件复制到远程计算机,然后重命名该文件
使用 Contoso\User01
凭据创建名为 Server01 的远程计算机的会话,并将结果存储在名为 $Session
的变量中。
Copy-Item
cmdlet 将 scriptingexample.ps1
从 D:\Folder004
文件夹复制到 C:\Folder004_Copy
使用存储在 $Session
变量中的会话信息来访问远程计算机上的文件夹。原来的文件没有被删除。
$Session = New-PSSession -ComputerName "Server04" -Credential "Contoso\User01"
Copy-Item "D:\Folder004\scriptingexample.ps1" -Destination "C:\Folder004_Copy\scriptingexample_copy.ps1" -ToSession $Session
示例9:将远程文件复制到本地计算机
将使用 Contoso\User01
凭据创建名为 Server01 的远程计算机的会话,并将结果存储在名为 $Session
的变量中。
Copy-Item
cmdlet 将 test.log
从远程 C:\MyRemoteData\
复制到本地 D:\MyLocalData
文件夹,使用存储在 $Session
变量中的会话信息。原来的文件没有被删除。
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\test.log" -Destination "D:\MyLocalData\" -FromSession $Session
示例 10:将远程文件夹的全部内容复制到本地计算机
将使用 Contoso\User01
凭据创建名为 Server01 的远程计算机的会话,并将结果存储在名为 $Session
的变量中。
Copy-Item
cmdlet 使用以下命令将远程 C:\MyRemoteData\scripts
文件夹中的全部内容复制到本地 D:\MyLocalData
文件夹会话信息存储在 $Session
变量中。如果脚本文件夹的子文件夹中包含文件,则复制这些子文件夹时其文件树完好无损。
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\" -FromSession $Session
示例 11:递归地将远程文件夹的全部内容复制到本地计算机
使用 Contoso\User01
凭据创建名为 Server01 的远程计算机的会话,并将结果存储在名为 $Session
的变量中。
Copy-Item
cmdlet 将远程 C:\MyRemoteData\scripts
文件夹中的全部内容复制到本地 D:\MyLocalData\scripts
文件夹使用存储在 $Session
变量中的会话信息。由于使用了 Recurse 参数,因此该操作将创建脚本文件夹(如果该文件夹尚不存在)。如果脚本文件夹的子文件夹中包含文件,则复制这些子文件夹时其文件树完好无损。
$Session = New-PSSession -ComputerName "Server01" -Credential "Contoso\User01"
Copy-Item "C:\MyRemoteData\scripts" -Destination "D:\MyLocalData\scripts" -FromSession $Session -Recurse
示例 12:将文件从文件夹树递归复制到当前文件夹
此示例演示如何将文件从多级文件夹结构复制到单个平面文件夹中。前三个命令显示现有文件夹结构和两个文件的内容,两个文件的名称均为 file3.txt
。
PS C:\temp\test> (Get-ChildItem C:\temp\tree -Recurse).FullName
C:\temp\tree\subfolder
C:\temp\tree\file1.txt
C:\temp\tree\file2.txt
C:\temp\tree\file3.txt
C:\temp\tree\subfolder\file3.txt
C:\temp\tree\subfolder\file4.txt
C:\temp\tree\subfolder\file5.txt
PS C:\temp\test> Get-Content C:\temp\tree\file3.txt
This is file3.txt in the root folder
PS C:\temp\test> Get-Content C:\temp\tree\subfolder\file3.txt
This is file3.txt in the subfolder
PS C:\temp\test> Copy-Item -Path C:\temp\tree -Filter *.txt -Recurse -Container:$false
PS C:\temp\test> (Get-ChildItem . -Recurse).FullName
C:\temp\test\subfolder
C:\temp\test\file1.txt
C:\temp\test\file2.txt
C:\temp\test\file3.txt
C:\temp\test\file4.txt
C:\temp\test\file5.txt
PS C:\temp\test> Get-Content .\file3.txt
This is file3.txt in the subfolder
Copy-Item
cmdlet 将 Container 参数设置为 $false
。这会导致复制源文件夹的内容,但不会保留文件夹结构。请注意,目标文件夹中的同名文件将被覆盖。
示例 13:使用过滤器复制项目而不使用递归
此示例显示使用包含参数选择要复制的项目的结果。
此示例使用以下包含要复制的文件的文件夹结构:
D:\temp\tree\example.ps1
D:\temp\tree\example.txt
D:\temp\tree\examples\
D:\temp\tree\examples\example_1.txt
D:\temp\tree\examples\example_2.txt
D:\temp\tree\examples\subfolder\
D:\temp\tree\examples\subfolder\test.txt
在此示例中,调用 Copy-Item
时使用 Path 和 Include 参数的通配符。为 Path 参数指定通配符可确保它处理与 D:\temp\tree\*
匹配的所有文件和文件夹。 Include 参数过滤要处理的项目列表,将操作限制为仅以 ex
开头的路径。
PS D:\temp\test\out> Copy-Item -Path D:\temp\tree\* -Include ex*
PS D:\temp\test\out> (Get-ChildItem -Recurse).FullName
D:\temp\out\examples
D:\temp\out\example.ps1
D:\temp\out\example.txt
Include 参数应用于 D:\temp\tree
文件夹的内容,以复制与 ex*
匹配的所有项目。请注意,如果没有递归,则会复制 D:\temp\out\examples 文件夹,但不会复制其任何内容。
示例 14:使用过滤器通过递归复制项目
此示例显示使用包含参数选择要复制的项目的结果。
此示例使用以下包含要复制的文件的文件夹结构:
D:\temp\tree\example.ps1
D:\temp\tree\example.txt
D:\temp\tree\examples\
D:\temp\tree\examples\example_1.txt
D:\temp\tree\examples\example_2.txt
D:\temp\tree\examples\subfolder\
D:\temp\tree\examples\subfolder\test.txt
在此示例中,调用 Copy-Item
时使用 Path 和 Include 参数的通配符。为 Path 参数指定通配符可确保它处理与 D:\temp\tree\*
匹配的所有文件和文件夹。 Include 参数过滤要处理的项目列表,将操作限制为仅以 ex
开头的路径。
D:\temp\out> Copy-Item -Path D:\temp\tree\* -Include ex* -Recurse
D:\temp\out> (Get-ChildItem -Recurse).FullName
D:\temp\out\examples
D:\temp\out\example.ps1
D:\temp\out\example.txt
D:\temp\out\examples\subfolder
D:\temp\out\examples\example_1.txt
D:\temp\out\examples\example_2.txt
D:\temp\out\examples\subfolder\test.txt
Include 参数应用于 D:\temp\tree
文件夹的内容,以复制与 ex*
匹配的所有项目。请注意,通过递归,D:\temp\out\examples
文件夹将与所有文件和子文件夹一起复制。该副本包含不与包含过滤器匹配的文件。使用Copy-Item
时,过滤器仅适用于Path参数指定的顶级。然后将递归应用于那些匹配的项目。
笔记
排除 参数的行为与本示例中描述的相同,只是它将操作限制为仅与模式不匹配的路径。
示例 15:限制文件从通配符指定的路径递归复制
此示例演示如何限制从通配符匹配路径递归复制到另一个文件夹的文件。示例 13 显示,由于 Include 参数仅过滤为指定通配符的 Path 解析的路径,因此不能使用 Include 参数。用于限制从文件夹中递归复制的文件。相反,您可以使用 Get-ChildItem
查找要复制的项目并将这些项目传递给 Copy-Item
。
此示例使用以下包含要复制的文件的文件夹结构:
D:\temp\tree\example.ps1
D:\temp\tree\example.txt
D:\temp\tree\examples\
D:\temp\tree\examples\example_1.txt
D:\temp\tree\examples\example_2.txt
D:\temp\tree\examples\subfolder\
D:\temp\tree\examples\subfolder\test.txt
要复制以 ex*
开头的所有项目,请使用 Get-ChildItem
以及 Recurse 和 Filter 参数和管道将结果复制到Copy-Item
。
D:\temp\out> Get-ChildItem -Path D:\temp\tree -Recurse -Filter ex* | Copy-Item
D:\temp\out> (Get-ChildItem -Recurse).FullName
D:\temp\out\examples
D:\temp\out\example_1.txt
D:\temp\out\example_2.txt
D:\temp\out\example.ps1
D:\temp\out\example.txt
与Copy-Item
不同,Get-ChildItem
的Filter 参数适用于递归期间发现的项目。这使您能够递归地查找、过滤然后复制项目。
参数
-Confirm
在运行 cmdlet 之前提示您进行确认。
类型 :SwitchParameter
别名:cf
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Container
指示此 cmdlet 在复制操作期间保留容器对象。默认情况下,Container 参数设置为True。
类型 :SwitchParameter
位置:命名
默认值:True
必需的:False
接受管道输入:False
接受通配符:False
-Credential
笔记
随 PowerShell 安装的任何提供程序均不支持此参数。要在运行此 cmdlet 时模拟其他用户或提升您的凭据,请使用 Invoke-Command。
类型 :PS凭证
位置:命名
默认值:当前用户
必需的:False
接受管道输入:True
接受通配符:False
-Destination
指定新位置的路径。默认为当前目录。
要重命名正在复制的项目,请在 Destination 参数的值中指定新名称。
类型 :String
位置:1
默认值:当前目录
必需的:False
接受管道输入:True
接受通配符:False
-Exclude
指定一个或多个路径元素或模式(例如 "*.txt"
),以限制此 cmdlet 的操作。此参数的值根据 Path 参数的通配符匹配结果进行过滤,而不是最终结果。仅当使用一个或多个通配符指定 Path 时,此参数才有效。由于此参数仅过滤为 Path 参数解析的路径,因此它不会过滤使用 Recurse 参数递归遍历子文件夹时发现的任何项目。
String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-Filter
指定一个过滤器来限定 Path 参数。文件系统提供程序是唯一安装的支持使用筛选器的 PowerShell 提供程序。您可以在 about_Wildcards 中找到文件系统过滤器语言的语法。筛选器比其他参数更有效,因为提供程序在 cmdlet 获取对象时应用它们,而不是让 PowerShell 在检索对象后筛选对象。
类型 :String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-Force
指示此 cmdlet 复制无法更改的项目,例如复制只读文件或别名。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-FromSession
这是由文件系统提供者提供的动态参数。
指定从中复制远程文件的 PSSession 对象。使用此参数时,Path 和 LiteralPath 参数指的是远程计算机上的本地路径。
有关详细信息,请参阅 about_FileSystem_Provider。
类型 :PS会话
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Include
指定一个或多个路径元素或模式(例如 "*.txt"
),以限制此 cmdlet 的操作。此参数的值根据 Path 参数的通配符匹配结果进行过滤,而不是最终结果。仅当使用一个或多个通配符指定 Path 时,此参数才有效。由于此参数仅过滤为 Path 参数解析的路径,因此它不会过滤使用 Recurse 参数递归遍历子文件夹时发现的任何项目。
String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-LiteralPath
指定到一个或多个位置的路径。 LiteralPath 的值完全按照其键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其用单引号引起来。单引号告诉 PowerShell 不要将任何字符解释为转义序列。
有关更多信息,请参阅 about_Quoting_Rules。
类型 :String[]
别名:PSPath, LP
位置:命名
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-PassThru
返回一个代表您正在使用的项目的对象。默认情况下,此 cmdlet 不会生成任何输出。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Path
以字符串数组形式指定要复制的项目的路径。允许使用通配符。
类型 :String[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:True
-Recurse
指示此 cmdlet 执行递归复制。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-ToSession
这是由文件系统提供者提供的动态参数。
指定要将远程文件复制到的 PSSession 对象。使用此参数时,Destination 参数指的是远程计算机上的本地路径。
有关详细信息,请参阅 about_FileSystem_Provider。
类型 :PS会话
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-WhatIf
显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。
类型 :SwitchParameter
别名:wi
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
输入
字符串
您可以通过管道传输包含此 cmdlet 路径的字符串。
输出
无
默认情况下,此 cmdlet 不返回任何输出。
PSObject
当您使用 PassThru 参数时,此 cmdlet 将返回一个表示复制项的对象。
笔记
PowerShell 包含以下 Copy-Item
别名:
所有平台:
copy
cpi
Windows:
cp
此 cmdlet 旨在处理任何提供程序公开的数据。要列出会话中可用的提供程序,请输入 Get-PSProvider
。有关详细信息,请参阅 about_Providers。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag