Mar*_*uer 36 powershell copy-item
我正在为MS PowerShell编写脚本.该脚本使用该Copy-Item命令.此命令的可选参数之一是" -container".该参数的文档声明指定此参数"在复制操作期间保留容器对象".
这一切都很好,因为在复制操作期间,我将是最后一个想要未预留容器对象的人.但严肃地说,这个论点有什么作用?特别是在我将磁盘目录树从一个地方复制到另一个地方的情况下,这对Copy-Item命令的行为有何不同?
bou*_*err 64
我也发现文档不太有用.我做了一些测试,看看-Container参数在-Recurse复制文件和文件夹时如何工作.
注意这-Container意味着-Container: $true.
这是我用于示例的文件结构:
# X:.
# ????destination
# ????source
# ? source.1.txt
# ? source.2.txt
# ?
# ????source.1
# source.1.1.txt
Run Code Online (Sandbox Code Playgroud)
X:\.1)仅复制源文件夹(空文件夹):
Copy-Item -Path source -Destination .\destination
Copy-Item -Path source -Destination .\destination -Container
# X:.
# ????destination
# ? ????source
# ????source (...)
Run Code Online (Sandbox Code Playgroud)
以下是错误:
Copy-Item -Path source -Destination .\destination -Container: $false
# Exception: Container cannot be copied to another container.
# The -Recurse or -Container parameter is not specified.
Run Code Online (Sandbox Code Playgroud)
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 (...)
Run Code Online (Sandbox Code Playgroud)
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 (...)
Run Code Online (Sandbox Code Playgroud)
Ste*_*ski 29
文档所讨论的容器是文件夹结构.如果您正在进行递归复制并希望保留文件夹结构,则可以使用-container开关.(注意:默认情况下,-container开关设置为true,因此您实际上不需要指定它.如果您想将其关闭,您可以使用-container: $false.)
有一个问题...如果您执行目录列表并将其传递给Copy-Item,它将不会保留文件夹结构.如果要保留文件夹结构,则必须指定-path属性和-recurse开关.
| 归档时间: |
|
| 查看次数: |
18359 次 |
| 最近记录: |