Blout removes extra blank lines from a file, collapsing multiple blank lines down to one, (or removing them altogether with the -compact option). It also ensures the file has a final CrLf. It also trims any blank lines off the beginning and end of the file. It also converts all line endings to Windows standard CrLf form. It trims trailing tabs and spaces from each line. Blout is not that bright. It does not understand wildcards except those expanded by the OS. You can put multiple files on the command line. usage: blout.exe somefile.txt anotherfile.txt You can also ask it to get rid of blank lines altogether with: blout.exe -compact somefile.txt anotherfile.txt For Windows, C source included. It can handle arbitrarily large files. They do not have to fit in RAM. Because of this feature, files will get a new date whether anything changed or not. It is designed to that if you abort part way through, your original file will be unchanged.