当前位置:  开发笔记 > 运维 > 正文

Powershell的Copy-Item的-container参数是什么意思?

如何解决《Powershell的Copy-Item的-container参数是什么意思?》经验,为你挑选了2个好方法。

我正在为MS PowerShell编写脚本.该脚本使用该Copy-Item命令.此命令的可选参数之一是" -container".该参数的文档声明指定此参数"在复制操作期间保留容器对象".

这一切都很好,因为在复制操作期间,我将是最后一个想要未预留容器对象的人.但严肃地说,这个论点有什么作用?特别是在我将磁盘目录树从一个地方复制到另一个地方的情况下,这对Copy-Item命令的行为有何不同?



1> bouvierr..:

我也发现文档不太有用.我做了一些测试,看看-Container参数在-Recurse复制文件和文件夹时如何工作.

注意这-Container意味着-Container: $true.

这是我用于示例的文件结构:

#    X:.
#    ????destination
#    ????source
#        ?   source.1.txt
#        ?   source.2.txt
#        ?
#        ????source.1
#                source.1.1.txt

对于所有示例,当前位置(pwd)是X:\.

我使用PowerShell 4.0.


1)仅复制源文件夹(空文件夹):

Copy-Item -Path source -Destination .\destination
Copy-Item -Path source -Destination .\destination -Container
#    X:.
#    ????destination
#    ?   ????source
#    ????source (...)

以下是错误:

Copy-Item -Path source -Destination .\destination -Container: $false
# Exception: Container cannot be copied to another container. 
#            The -Recurse or -Container parameter is not specified.     

2)使用文件复制整个文件夹结构:

Copy-Item -Path source -Destination .\destination -Recurse
Copy-Item -Path source -Destination .\destination -Recurse -Container
#    X:.
#    ????destination
#    ?   ????source
#    ?       ?   source.1.txt
#    ?       ?   source.2.txt
#    ?       ?
#    ?       ????source.1
#    ?               source.1.1.txt
#    ????source (...)    

3)将所有后代(文件和文件夹)复制到一个文件夹中:

Copy-Item -Path source -Destination .\destination -Recurse -Container: $false
#    X:.
#    ????destination
#    ?   ?   source.1.1.txt
#    ?   ?   source.1.txt
#    ?   ?   source.2.txt
#    ?   ?
#    ?   ????source.1
#    ????source (...)


这个答案值得更多的选票.它没有留下任何想象力.+1

2> Steven Muraw..:

文档所讨论的容器是文件夹结构.如果您正在进行递归复制并希望保留文件夹结构,则可以使用-container开关.(注意:默认情况下,-container开关设置为true,因此您实际上不需要指定它.如果您想将其关闭,您可以使用-container: $false.)

有一个问题...如果您执行目录列表并将其传递给Copy-Item,它将不会保留文件夹结构.如果要保留文件夹结构,则必须指定-path属性和-recurse开关.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有