大家早上好
我对此非常陌生并且有点超出我的深度。我想知道在PowerShell中是否可以做一些事情(或者如果不是PowerShell,还有什么可以做到这一点)。
我们每天会收到一些电子邮件,其中包含1个或更多(我认为最多7个)TSV文件。 Outlook扩展流程正在剥离这些附件并将其放入名为“要处理的tsv文件”的文件夹中。每个文件都有一个唯一的文件名,因此不存在文件相互覆盖的问题。
如果重要,我应该提到TSV文件包含数字,数字用逗号分隔(4,000)。
这些TSV文件都需要合并到一个csv文件中,该文件在一天结束时被发送到另一个目录,我们称之为“输出csv文件”,文件名固定,以便可以导入。
处理完成后,应将TSV文件分流到归档目录,这样就不会多次处理它们。为此,我们创建了文件夹“archive tsv files”。
在“输出csv文件”目录中,我们将每天处理一次文件,所以理想情况下我们希望将此文件在12:30移动到我们称为“输出csv文件存档”的另一个目录中(如您所见)花了很多时间在文件夹命名上)。此时,我们将日期添加到文件名outputcsv,以便它变为outputcsv280916(今天)或增量(如果这更容易)(例如outputcsv1,outputcsv2等)。
如果这是一个真正的新手问题,请耐心等待,因为我对此非常陌生。
非常感谢
保
答案 0 :(得分:0)
基本上,使用Import-Csv和Export-Csv。
if (Test-Path 'out.csv') { del 'out.csv' }
dir '*.tsv' | ForEach {
Import-Csv $_ -Delimiter "`t" | Export-Csv 'out.csv' -Append -NoTypeInformation
move $_ 'archive tsv files'
}
如果文件很大,这将比直接将它们作为文本读取并替换制表符而慢,但这是另一个问题。