【发布时间】:2018-06-13 13:46:15
【问题描述】:
我正在尝试为一个简单的备份系统镜像几个文件夹。
假设我有以下文件结构:
c:\temp\a.txt
c:\temp\b.txt
c:\temp\sub\a.txt
c:\temp\sub\112233.txt
c:\temp\sub2\pictureofaduck.jpg
我的目标是将c:\temp\ 的全部内容复制到一个新的目的地(D:\mybackup\),如下所示:
d:\mybackup\a.txt
d:\mybackup\b.txt
d:\mybackup\sub\a.txt
d:\mybackup\sub\112233.txt
d:\mybackup\sub2\pictureofaduck.jpg
我错误地认为这对于使用此行的 Copy-Item 来说应该是一件容易的事:
Copy-Item 'C:\temp\' -Destination 'D:\mybackup\' -Recurse
出乎我的意料,Copy-Item 非常渴望在游戏中保留那个“临时”文件夹。因为无论我尝试什么通配符和 - 在结尾组合,我要么得到以下结果,要么只复制两个文件 a.txt 和 b.txt。
d:\mybackup\temp\a.txt
d:\mybackup\temp\b.txt
d:\mybackup\temp\sub\123.txt
d:\mybackup\temp\sub\112233.txt
d:\mybackup\temp\sub2\pictureofaduck.jpg
请帮帮我,这太荒谬了。
PS:这个问题的解决方案在这里不起作用 - 去过那里。我只得到根文件:
Copy entire folder structure in Powershell without re-creating root folder
【问题讨论】:
-
这有帮助吗?
Copy-Item 'C:\temp\*' -Destination 'D:\mybackup\' -Recurse -
抱歉 powershell :)
xcopy C:\temp D:\mybackup /e -
@boxdog 不,这只会复制两个根文件。
-
我建议使用 RoboCopy。
-
@StefanLippeck。奇怪 - 当我测试它时工作。也许我错过了什么。无论如何,镜像大型文件夹结构是我不喜欢在本机 PowerShell 中执行的少数任务之一。我有一些与 RoboCopy 类似的定期运行的备份作业:
RoboCopy /mir <source_dir> <dest_dir>
标签: powershell copy-item