我正在尝试将文件夹从本地计算机复制到远程服务器。它可以工作,但如果目标文件夹已经存在,则会在其中创建一个重复的文件夹。
copy-item -Path C:\test -Destination \\server\F$\testpassed -recurse -Force
答案 0 :(得分:2)
要仅将C:\test
内的文件复制到\\server\F$\testpassed
文件夹,您需要使用以下命令:
Copy-Item -Path C:\test\* -Destination \\server\F$\testpassed -Recurse
\*
是该文件夹中任何内容的通配符,会导致Copy-Item
将在文件夹中的任何内容复制到目标网址。如果您只想要复制特定的文件类型,也可以使用*.txt
仅复制txt文件。
修改强>
我会测试$TARGETDIR
的存在,然后根据需要创建它。这样,您只有一个复制命令。
$TargetDir = "\\server\F$\testpassed"
$SourceDir = "C:\test"
if(!(Test-Path -Path $TARGETDIR)) {New-Item -Path $TARGETDIR -ItemType Directory}
Copy-Item -Path "$SourceDir\*" -Destination $TARGETDIR -Recurse
答案 1 :(得分:1)
以下方式使用源路径将解决您的问题
Copy-Item -Path C:\ test *
答案 2 :(得分:0)
尝试
$Source = Get-childitem C:\test -Recurse
copy-item -Path $Source.FullName -Destination C:\temp -recurse -Force
使用GC停止获取文件夹和内容。