File Powershell根据目标文件夹中的文件名将文件复制到不同的位置

File Powershell根据目标文件夹中的文件名将文件复制到不同的位置,file,powershell,copy,File,Powershell,Copy,我想将文件从源文件夹复制到已存在的不同位置。源文件夹如下所示: y:\source\00001_w01.jpg y:\source\00001_w02.jpg y:\source\00002_w01.jpg y:\source\00003_w01.jpg y:\destination\120\04397\00001-00001-new_doc.jpg y:\destination\120\04397\00001-00002-new_doc.jpg y:\destination\120\0439

我想将文件从源文件夹复制到已存在的不同位置。源文件夹如下所示:

y:\source\00001_w01.jpg
y:\source\00001_w02.jpg
y:\source\00002_w01.jpg
y:\source\00003_w01.jpg
y:\destination\120\04397\00001-00001-new_doc.jpg
y:\destination\120\04397\00001-00002-new_doc.jpg
y:\destination\120\04397\00002-00001-00001.jpg
y:\destination\120\04397\00002-00002-00001.jpg
y:\destination\120\04397\00001-00001-new_doc.jpg
y:\destination\120\04397\00001-00002-new_doc.jpg
y:\destination\120\04397\00002-00001-00001.jpg
y:\destination\120\04397\00002-00001-00001-00001_w01.jpg
y:\destination\120\04397\00002-00001-00001-00001_w02.jpg
y:\destination\120\04397\00002-00002-00001.jpg
目标文件夹结构如下所示:

y:\source\00001_w01.jpg
y:\source\00001_w02.jpg
y:\source\00002_w01.jpg
y:\source\00003_w01.jpg
y:\destination\120\04397\00001-00001-new_doc.jpg
y:\destination\120\04397\00001-00002-new_doc.jpg
y:\destination\120\04397\00002-00001-00001.jpg
y:\destination\120\04397\00002-00002-00001.jpg
y:\destination\120\04397\00001-00001-new_doc.jpg
y:\destination\120\04397\00001-00002-new_doc.jpg
y:\destination\120\04397\00002-00001-00001.jpg
y:\destination\120\04397\00002-00001-00001-00001_w01.jpg
y:\destination\120\04397\00002-00001-00001-00001_w02.jpg
y:\destination\120\04397\00002-00002-00001.jpg

我需要将文件从源文件夹(00001_w01.jpg,00001_w02.jpg)复制到位于第一个文件之后的destinaton文件夹,该文件名称中的最后一部分与源文件名称中的第一部分匹配

复制后,目标文件夹结构将如下所示:

y:\source\00001_w01.jpg
y:\source\00001_w02.jpg
y:\source\00002_w01.jpg
y:\source\00003_w01.jpg
y:\destination\120\04397\00001-00001-new_doc.jpg
y:\destination\120\04397\00001-00002-new_doc.jpg
y:\destination\120\04397\00002-00001-00001.jpg
y:\destination\120\04397\00002-00002-00001.jpg
y:\destination\120\04397\00001-00001-new_doc.jpg
y:\destination\120\04397\00001-00002-new_doc.jpg
y:\destination\120\04397\00002-00001-00001.jpg
y:\destination\120\04397\00002-00001-00001-00001_w01.jpg
y:\destination\120\04397\00002-00001-00001-00001_w02.jpg
y:\destination\120\04397\00002-00002-00001.jpg
在哪里

y:\destination\120\04397\00002-00001-00001-00001_w01.jpg = y:\source\00001_w01.jpg
y:\destination\120\04397\00002-00001-00001-00001_w02.jpg = y:\source\00001_w02.jpg

我最大的问题是如何匹配这些文件。有什么想法吗?

我需要将文件从源文件夹(00001_w01.jpg,00001_w02.jpg)复制到第一个文件后的destinaton文件夹,该文件名的最后一部分与源文件名的第一部分匹配。-你能准确地显示你所匹配的吗。然后可以使用$sourcefile.Trimstart()和$destfile.Trimend()-显示名称的相交位置。源文件(00001从00001_w01.jpg)的前5位数字必须与目标文件(00001从00002-00001-00001.jpg)的后5位数字匹配。目标文件名可以分为三个部分-只有最后一个数字部分必须匹配。您的描述仍然不明确。如何识别目标文件夹?根据您的规则,最后一个示例也与
00002-00002-00001匹配。jpg
也不清楚是否始终是第三组或扩展之前的最后一组进行匹配。抱歉,响应太晚。目标文件夹由其中的文件名标识。没错,我的规则也匹配00002-00002-00001.jpg。为了澄清规则,只接受目标文件中具有正确编号的第一个文件(当然,当文件排序时)。它总是第三组。