PowerShell使用Copy-Item复制目录时遗漏上层子文件夹内文件的技术求助
解决PowerShell复制文件遗漏的问题
咱们先把问题点透——你用的复制命令路径是c:\folder1\folder2\folder3\*,这等于只让PowerShell去复制folder3里面的所有东西,folder1根目录的file1、folder2里的file2压根不在这个路径范围内,自然不会被复制,这就是遗漏的根源。
根据你的需求,分两种情况给你解决方案:
情况1:想复制整个folder1的全部内容
如果你要把folder1下面的所有文件、子文件夹(包括file1、folder2以及folder2下的所有层级)都复制到目标目录,直接把路径指向folder1即可:
- 如果你想把整个folder1文件夹完整复制到d盘(目标路径会是
d:\folder1):Copy-Item -Path c:\folder1 -Destination d:\ -Recurse -Verbose - 如果你想把folder1里面的内容(file1、folder2等)直接放到d盘根目录,不额外创建folder1文件夹:
Copy-Item -Path c:\folder1\* -Destination d:\ -Recurse -Verbose
情况2:只想复制file1 + folder2及其所有子内容
如果你的需求不是全量复制folder1,而是只需要file1和folder2(包括folder2下的folder3等所有子内容),可以直接指定多个目标路径:
Copy-Item -Path c:\folder1\file1, c:\folder1\folder2 -Destination d:\ -Recurse -Verbose
这里再提一句-Recurse参数的作用:它负责递归复制指定路径下的所有子层级内容,但前提是你指定的路径本身包含了你需要的文件或文件夹——你之前的命令只指定了folder3的内容,所以上层的文件自然被漏掉了。
内容的提问来源于stack exchange,提问作者floki91
相关产品推荐
相关产品推荐

