搜索文件夹的文件名和复制项目到另一个位置

时间:2018-01-08 10:49:19

标签: powershell

您好,在我们的环境中,我们有以下结构:

\\server\share1\Subfolder1\Subfolder3\123456.jpg
\\server\share1\Subfolder2\Subfolder4\456789.jpg
\\server\share2\123456.tif
\\server\share2\456789.tif

我想要做的是:检查share2中的项目是否存在为tif。如果是这样,那么我想将tif文件复制到与jpg(share1)相同的位置。

通过Get-ChildItem -Recurse -File我可以获取所有文件,但我不知道如何将文件名与share2进行比较,并将tif文件复制到与jpg相同的位置。

提前致谢!

1 个答案:

答案 0 :(得分:3)

这应该做你需要的:

$JpgFiles = Get-ChildItem .\Share1 -Recurse -File -Filter *.jpg

ForEach ($File in $JpgFiles) {
    $TifFile = Get-ChildItem .\Share2 -Recurse -File -Filter *.tif | Where { $_.BaseName -eq $File.BaseName }

    If ($TifFile) { Copy-Item -Path $TifFile.FullName -Destination $File.DirectoryName }
}
  • 获取Share1
  • 中的所有.jpg文件
  • 遍历每个文件,并将.basename属性与Share2中的文件进行比较(basename是不带扩展名的文件名)。
  • 如果它返回文件,则将该文件复制到share1