Me uno a lo que te sugiere David Mendez pero si quieres algo más detallado te diría que hay varias acciones sobre las que tomar decisiones en cuanto a las herramientas/entorno que se quieren utilizar:
1. Detección de duplicados. Habría que determinar que se considera un duplicado (parece muy probable que en un archivo de más de 5000 caracteres se repita alguna palabra, por tanto habría que decidir en que casos se puede considerar que se producen duplicados). Y que herramienta se puede usar para ello. En este punto no se me ocurre ninguna, aunque no me extrañaría que Powershell pudiera ayudar en ello.
2. Una vez detectados los duplicados hay que decidir que herramienta se utiliza para sustituirlos por "nada", es decir, para eliminarlos. Se podría usar un BAT o un guión de Powershell o, como sugiere David, alguna propia de algún otro lenguaje de programación
3. Respecto a los espacios en blanco habría que decidir si quieres eliminar todos los espacios en blanco o (supongo que más probablemente) hacer que nunca haya dos espacios en blanco seguidos. Para esto seguramente también se podría usar un BAT o un Powershell o, de nuevo, seguir la sugerencia de David.
Ya nos contarás.