Могу только вспомнить команду для определения содержимого файла в Linux (расширение не учитывается) — file.
user@host$ file nnn.doc
file nnn.doc: CDF V2 Document, Little Endian, Os: Windows, Version 1.0, Code page: -535, Revision Number: 9, Total Editing Time: 02:46:00, Last Printed: Sun Sep 2 03:44:00 2012, Create Time/Date: Thu Aug 30 09:26:00 2012, Last Saved Time/Date: Sun Sep 2 03:45:00 2012
user@host$ file nnn.odt
nnn.odt: Zip archive data, at least v1.0 to extract
user@host$ file nnn..xls
nnn..xls: CDF V2 Document, Little Endian, Os: Windows, Version 5.1, Code page: 1251, Last Saved By: system, Last Printed: Thu Mar 29 10:00:04 2012, Create Time/Date: Thu Jan 1 02:59:59 1970, Last Saved Time/Date: Wed Feb 29 07:57:42 2012, Security: 0
Под Windows не знаю.
Нужно определять тип файла или категорию можно узнать только по содержимому? Если по содержимому могу тоже дать инструкцию.