我有一个用于备份文件的脚本。出于某种原因,脚本第二次运行时只复制子文件夹的文件和目录。错误消息是
“无法将容器复制到现有的叶项目上”。
我正在搜索这个错误,他们说我正在将一个文件复制到同一个文件名上,但这是一个子目录,在脚本第一次运行时甚至没有创建。我第一次运行这个时目标文件夹是空的。有什么想法吗?
源目录如下所示:
\\DRIVE01\Svcs
\Credential
\Forms
file and dir list #this dir level doesn't get copied the first time, but the files do
第一次执行后 toLoc 的样子如下:
me\Documents\2018\powershellFiles\toLoc
\Credential
\Forms
file list #the first time the files get copied without the dirs at this level
这是我的脚本:
function CopyFileToFolderUNC($SourcePath, $DestinationPath){
Copy-Item -Path $SourcePath/* -Destination $DestinationPath #Copy-Item -Path source -Destination target -Recurse -Force
}
#################start here##################################
$tempSource = @("\\DRIVE01\Svcs\Credentialing\FORMS") #eventually will have list of more than one here
$ToLocation = "C:\Users\me\Documents\2018 \powershellFiles\toLoc\Credentialing\FORMS\" #this will eventually be array with multiple in it
for($i=0; $i -lt ($tempSource.Length); $i++) {
CopyFileToFolderUNC $tempSource[$i] $ToLocation
}
在我从 foreach 切换到 for 循环之前,我认为它适用于 toLoc 中的子目录。我需要一个 for 循环,因为它可以更轻松地处理接下来的源和目标目录字符串的数组。
答案1
我不得不使用 robocopy。
robocopy c:\fold1 c:\fold2 /s