Powershell 使用批处理或shell替换子文件夹中的文件(如果存在)

Powershell 使用批处理或shell替换子文件夹中的文件(如果存在),powershell,shell,batch-file,powershell-2.0,Powershell,Shell,Batch File,Powershell 2.0,我有一个包含10-80个jpg图像文件的源文件夹 我需要将它们复制到带有子文件夹的目标文件夹中,并用源文件夹中的版本替换每个现有文件,但仅当这些文件已经存在时 如果没有此类文件,请不要放置副本 我可以用批处理还是壳处理?还有什么更好更快呢?PowerShell可以很快实现这一点。假设照片在源和目标中具有相同的名称,这应该可以工作 # Get the source photos $SourcePhotos = Get-ChildItem -Path '.\Source' # Loop throu

我有一个包含10-80个jpg图像文件的源文件夹

我需要将它们复制到带有子文件夹的目标文件夹中,并用源文件夹中的版本替换每个现有文件,但仅当这些文件已经存在时

如果没有此类文件,请不要放置副本


我可以用批处理还是壳处理?还有什么更好更快呢?

PowerShell可以很快实现这一点。假设照片在源和目标中具有相同的名称,这应该可以工作

# Get the source photos
$SourcePhotos = Get-ChildItem -Path '.\Source'

# Loop through each of our source photos
foreach ($SourcePhoto in $SourcePhotos) {
    # Recuresively search the destination for the photo from the source
    $DestinationPhoto = Get-ChildItem -Path '.\Destination' -Filter $SourcePhoto.Name -Recurse
    # If we find the photo in the destination...
    if ($DestinationPhoto) {
        # Copy from source to destination forcefully to overwrite the one at the destination
        Copy-Item $SourcePhoto.FullName $DestinationPhoto.FullName -Force
    }
}

xcopy/?
-尤其是
/U
开关。@Stephan感谢您的帮助,它确实替换了文件,但只替换了文件夹的根目录中的文件,而不是子文件夹中的文件,因此如何在目标文件夹中搜索带有子文件夹的文件,并在存在时替换它们?
xcopy/?
-尤其是
/s
开关。我测试了它,没有工作,什么也没发生,有两个文件夹和源Destination@MohamedJawadi请给你的目录结构,我可以微调脚本