在PowerShell中使用Get-ChildItem复制项目

时间:2013-12-16 16:30:03

标签: powershell

我正在尝试使用PowerShell将大量文件从Windows系统复制到Unix共享。我似乎能够到目前为止,但不是整个解决方案。

我似乎能够复制文件,只要我不介意它们存储在哪里,因为它会丢失所有文件夹结构。我尝试过在这里和其他地方发布的各种方法无济于事。

代码:

gci -path "e:\company folders\\*" | Where-Object {$_.LastAccessTime -le (Get-Date).addyears(-2)} | Copy-Item -destination "\\\networkfolder\archive\company folders\"

我尝试过这个脚本的几种变体,包括在-path之后和-destination之后使用-recurse

最成功来自

gci -path "e:\company folders\*" | Where-Object {$_.lastaccesstime -le (Get-Date).addyears(-2)} | Copy-Item -destination "\\\networkshare\archive\company folder\" -recurse -container

但这只复制了43个文件夹中的5个..

我做错了什么?

2 个答案:

答案 0 :(得分:4)

如果要复制文件夹结构,请使用robocopy(Windows等效于rsync):

$src = ':\company folders'
$dst = '\\networkfolder\archive\company folders'
$age = (Get-Date).AddYears(-2).ToString('yyyyMMdd')

& robocopy "$src" "$dst" /s /maxlad:$age

如果您还要包含空子文件夹,请将/s替换为/e

答案 1 :(得分:0)

以下脚本复制文件并保留文件夹结构(以防万一),使用特定的过滤器。

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

基于原始response