我无法弄清楚这个命令哪里做错了,希望别人能指出来。
我想复制目录结构,但不复制该结构包含的文件。
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
}