我创建了简单的powershell脚本,用于将文件和文件夹从一个位置复制到共享计算机中的多个位置,这项工作正常,但我们必须每周运行一次此脚本来复制和覆盖写入内容
问题是下次运行的脚本在同一父agian内创建父文件夹作为例子的子文件夹:
复制了Folder1(下次运行脚本或文件夹存在时),这看起来像
Folder1中\文件夹1
正如您在照片中看到的那样,正确复制了文件夹和内容,但是如果文件夹存在,或者这将在同一个同名文件夹中创建新的子文件夹
以下是要审核的脚本的副本。
Clear-Host
#source path
$sourceDir = '\\source\Users\asdew\Desktop\dep'
#Array with Sites Path
$targetDir = @(
#Sites in pc1
'\\Apc20\Users\afded\Desktop\site01',
#Sites in pc2
'\\Apc10\Users\adsed\Desktop\site02'
)
$i=0
Foreach ($dest in $targetDir){
Get-ChildItem $sourceDir -Recurse | % {
$dest = $targetDir[$i] + $_.FullName.SubString($sourceDir.Length)
If (!($dest.Contains('.')) -and !(Test-Path $dest))
{
mkdir $dest
}
#Copy Files and over write existen files.
Write-Host "copy start. Please wait..We are copying your files.." -ForegroundColor DarkYellow
Copy-Item $_.FullName -Destination $dest -Force -PassThru -ErrorAction SilentlyContinue
If(-not $?)
{Write-Warning "Your copy Failed!!" -InformationAction}
else
{Write-Host "Your copy was Success!" -ForegroundColor Green}
}
$i = $i+1
}
我希望有人可以帮我解决这个问题。 此致
答案 0 :(得分:0)
我认为Copy-Item应该完成所有工作。请尝试以下代码
Clear-Host
#source path
$sourceDir = '\\source\Users\asdew\Desktop\dep'
#Array with Sites Path
$targetDir = @(
#Sites in pc1
'\\Apc20\Users\afded\Desktop\site01',
#Sites in pc2
'\\Apc10\Users\adsed\Desktop\site02'
)
Foreach ($dest in $targetDir){
Get-ChildItem $sourceDir | Copy-Item -Recurse -Destination $dest -ErrorAction Continue -Force
}