复制项目未按预期工作

复制项目未按预期工作

我无法弄清楚这个命令哪里做错了,希望别人能指出来。

我想复制目录结构,但不复制该结构包含的文件。

Copy-Item -recurse -exclude *.* -path \\server1\z$\backups\  -destination \\server2\z$\ -Verbose

命令运行,但它复制了文件,尽管告诉它不要复制文件。我如何复制目录树而不是文件?

答案1

尝试这个。

copy-item -path "\\server1\z$\backups\" -Destination "\\server2\z$\" -Filter {$_.PSIsContainer -eq $True} -recurse

答案2

robocopy /e /XF *.*

抱歉,这并没有真正回答你的问题。也许可以尝试这样做:

ForEach($folder in Get-ChildItem -Recurse \\server1\z$\backups\ | ? { $_.PSIsContainer }) { Copy-Item -Path $folder -Destination \\server2\z$\$folder }

上面的 PS 脚本可能需要一些调整——我没有真正测试过它。但概念是存在的。

答案3

这是我想出来的。你可以在运行之前先把“mkdir”命令拿出来测试一下。

$src =  "c:\temp"
$dest = "c:\test"

$dirs = dir -Recurse $src | Where {$_.psIsContainer -eq $true}
foreach( $name in $dirs ) {
    $tmp = $name.fullname.Replace($name.Root,$dest + "\")
    $tmp
    mkdir $tmp
}

相关内容