Powershell脚本,用于将名称大致相同的文件从文件夹复制到另一个文件夹
在收到近130000个代表发票的xml文件后,我遇到了以下情况 根据发票的创建日期,发票位于文件夹和子文件夹中: 文件夹2016,包含子文件夹:2016-01-01(然后此子文件夹包含xml文件)、2016-01-02(然后此其他子文件夹包含当天发票的xml文件)等等。。。直到2016年12月31日(此子文件夹包含当天发票的xml文件) 文件夹2017,包含子文件夹:2017-01-01(然后此子文件夹包含xml文件)、2017-01-02(然后此其他子文件夹包含当天发票的xml文件)等等。。。截至2017年12月31日(此子文件夹包含当日发票的xml文件) 等等 但是,这些附件位于不同的文件夹中,并且都堆放在一起。它们可以是PDF、docx甚至PNG。发票和附件之间的唯一链接是文件名。发票长度为32个字符:0bad5e493aa44982bc60d7ed0670465e,附件如下:0bad5e493aa44982bc60d7ed0670465e-1。大多数发票只有一个附件,但其他发票有更多附件,它们看起来是这样的:0bad5e493aa44982bc60d7ed0670465e-2、0bad5e493aa44982bc60d7ed0670465e-3、0bad5e493aa44982bc60d7ed0670465e-4 我需要的是一个脚本,它可以将附件移动到正确的文件夹中,并在其各自的发票旁边 脚本运行后,每个已存在的文件夹将包含当天的发票和该发票的附件: 文件夹2016>子文件夹2016-01-01将包含发票xml 0bad5e493aa44982bc60d7ed0670465e和附件0bad5e493aa44982bc60d7ed0670465e-1、0bad5e493aa44982bc60d7ed0670465e-2、0bad5e493aa44982bc60d7ed0670465e-3以及可能的其他发票及其各自附件 请给我指出正确的方向(我是通过powershell思考的,但我可以尝试其他任何东西),因为这个请求对我来说完全出乎意料,手动完成它将花费一生的时间,而我不是一个程序员 谢谢大家! 试试这个:Powershell脚本,用于将名称大致相同的文件从文件夹复制到另一个文件夹,powershell,batch-file,Powershell,Batch File,在收到近130000个代表发票的xml文件后,我遇到了以下情况 根据发票的创建日期,发票位于文件夹和子文件夹中: 文件夹2016,包含子文件夹:2016-01-01(然后此子文件夹包含xml文件)、2016-01-02(然后此其他子文件夹包含当天发票的xml文件)等等。。。直到2016年12月31日(此子文件夹包含当天发票的xml文件) 文件夹2017,包含子文件夹:2017-01-01(然后此子文件夹包含xml文件)、2017-01-02(然后此其他子文件夹包含当天发票的xml文件)等等。。。
Get-ChildItem -Path C:\Invoices\2016 -Include *.xml -Recurse | Select BaseName, DirectoryName |
ForEach { Get-ChildItem -Path C:\Attachments -Include "$($_.BaseName)*.*" -Recurse |
Move-Item -Destination $_.DirectoryName }
我希望这是你想要的,因为我不确定你的解释。
只需将
C:\Invoices\2016
和C:\Attachments
替换为正确的路径即可也许可以在superuser上试用一下。这对SO来说有点太模糊了。从获取XML文件列表开始。使用.BaseName
属性访问其名称而不带扩展名,添加*
以获取相同名称的通配符版本,并使用该版本从另一个a目录获取匹配文件名的列表。此网站不提供代码编写服务。如果您希望我们帮助您解决它所显示的问题,请编写您自己的代码。请尽量避免回答代码请求类型的问题;这些都是StackOverflow的主题。