收到近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-3、0bad5e493aa44982bc60d7ed0670465e-3、0bad5e493aa44982bc60d7ed0670465e-4。
我需要的是一个脚本,该附件将附件移到正确的文件夹中,靠近相应的发票。
在脚本运行后,每个已经存在的文件夹都将包含当天的发票以及该发票的附件:
2016文件夹>子文件夹2016-01-01,将包含发票xml 0bad5e493aa44982bc60d7ed0670465e-1和附件:0bad5e493aa44982bc60d7ed0670465e-1、0bad5e493aa44982bc60d7ed0670465e-2、0bad5e493aa44982bc60d7ed0670465e-2、0bad5e493aa44982bc60d7ed0670465e-2、0bad5e493aa44982bc60d7ed0670465e-2、0bad5e493aa44982b和60
请指出正确的方向(我正在考虑通过Powershell,但是我可以尝试其他方法),因为这个请求对我来说完全是意外的,而手动执行此操作将花费一生,而我不是很多程序员。
谢谢!
答案 0 :(得分:1)
尝试一下:
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