我正在爲MS PowerShell編寫腳本。該腳本使用Copy-Item
命令。此命令的一個可選參數是「-container
」。該參數的文檔指出,指定此參數「在複製操作過程中保留容器對象。」Powershell的Copy-Item的-container參數是什麼意思?
這是一切都很好,因爲我將是在複製操作過程中想要不當的容器對象的最後一個人。但是,非常認真地說,這個論點有什麼作用?特別是在我將磁盤目錄樹從一個地方複製到另一個地方的情況下,這對Copy-Item
命令的行爲有什麼影響?
我正在爲MS PowerShell編寫腳本。該腳本使用Copy-Item
命令。此命令的一個可選參數是「-container
」。該參數的文檔指出,指定此參數「在複製操作過程中保留容器對象。」Powershell的Copy-Item的-container參數是什麼意思?
這是一切都很好,因爲我將是在複製操作過程中想要不當的容器對象的最後一個人。但是,非常認真地說,這個論點有什麼作用?特別是在我將磁盤目錄樹從一個地方複製到另一個地方的情況下,這對Copy-Item
命令的行爲有什麼影響?
文檔討論的容器是文件夾結構。如果您正在執行遞歸副本並希望保留文件夾結構,則可以使用-container開關。 (注意:默認情況下,-container開關設置爲true,所以你真的不會需要指定它如果你想關閉它,你可以使用-container: $false
。)
有一個catch到這個...如果您執行目錄列表並將其管道複製到項目,它將不會保留文件夾結構。如果要保留文件夾結構,則必須指定-path屬性和-recurse開關。
我也發現文檔不夠有幫助。我做了一些測試,看看在複製文件和文件夾時-Container
參數如何與-Recurse
配合使用。
請注意,-Container
表示-Container: $true
。
這是我用於實施例的文件結構:
# X:.
# ├───destination
# └───source
# │ source.1.txt
# │ source.2.txt
# │
# └───source.1
# source.1.1.txt
X:\
。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 (...)
這是非常清楚的。謝謝! – 2008-09-24 20:03:25
-container是一個開關,所以它需要`:`傳遞值。 `-container:$ false`。 – 2013-02-03 15:21:34