我有一个包含10000个文本文件的文件夹。像这样的东西:
the end 1.txt
the end 2.txt
the end 3.txt
the blue one 1.txt
the blue one 2.txt
the blue one 3.txt
the blue one 4.txt
first letter 1.txt
first letter 2.txt
first letter 3.txt
我希望将每组文本文件(具有相同名称)合并到一个文本文件中。这样的事情 - 蓝色的all.txt - 首字母all.txt - 结束all.txt
我知道我可以使用commnad合并文本文件: copy * .txt allfiles.txt 我需要根据他们名字的一部分合并它们。
答案 0 :(得分:0)
此代码假定文件名以SPACE结尾,然后是DIGITS,然后是#t; .txt'。如果没有,它可能不会做你想要的。如果您认为文件会正确连接,请从-WhatIf
cmdlet中删除Add-Content
。
Get-ChildItem -File -Filter '*.txt' |
ForEach-Object {
if ($_ -match '(.*)\d+\.txt$') {
$newname = $_.DirectoryName + '\' + $matches[1] + 'all.txt'
Add-Content -Path $newname -Value (Get-Content $_) -WhatIf
}
}
如果必须从cmd.exe shell运行此命令,请将代码放入doit.ps1
等文件中,然后在命令行或.bat文件中运行:
powershell -NoLogo -NoProfile -File doit.ps1