в мелкософте было два командных интерпретатора:
command.com(win98 и ранее)
cmd.exe(соответственно более новые версии)
первый в качестве пакетных файлов использовал только *.bat, а второй использовал еще и расширение *.cmd(содержимое же им интерпретировалось независимо от расширения)
набором команд и плюшками интерпретаторы отличаются между собой, и между ними нету 100% совместимости ни в одну из сторон
поэтому частенько советовалось batch файлы для cmd.exe рекомендовалось сохранять с расширением *.cmd, дабы никто случайно не скормил его command.com-у
сейчас с 98-й вендой, компов почти не найти, поэтому такая проблема отпадает
PS эксурс подготовлен по материалам гугла, а не из личного опыта