我遇到以下问题。我有一个文件夹C:\ Users \ Username。在该文件夹中,您可以找到“文档”,“收藏夹”等文件夹。
我想做的是仅包含要复制的某些文件夹。
我当时正与Robocopy XD
玩耍以排除某些文件夹,但这是不可接受的,因为我无法知道其中可能存在的所有文件夹。
然后我尝试了Get-ChildItem -include <some dir>
。现在我只想复制列出的文件夹。但是robocopy仅复制文件夹的内容,而不复制文件夹本身。还有其他解决方案。
答案 0 :(得分:3)
首先:别忘了在-recurse
上使用Get-ChildItem
来获取对象中的所有结构。
然后在robocopy
上
/s
包含非空子目录,并且需要/e
包含所有子目录/b
和/purge
在执行备份时很好用-大大提高了速度。不过要小心清除/xd <Directory>[ ...]
排除与指定名称和路径匹配的目录。 (或者您可以仅包含所需子目录的列表)我使用类似这样的内容:
$source = 'C:\hold\first test'
$destination = 'C:\hold\second test'
$robocopyOptions = @('/NJH', '/NJS')
$fileList = 'test.txt'
Start robocopy -args "$source $destination $fileList $robocopyOptions"
log
选项也挽救了我一生。
有关所有参数,请参见robocopy docs
答案 1 :(得分:0)
我刚刚发现您可以执行Copy-Item -Path $path"\Desktop" -Destination $newdir -Recurse
,它将复制包含其内容的Desktop文件夹。