Вообще командная строка винды достаточно капризна к не буквенно-цифровым символам. И не только в начале файла, но и в любом месте имени файла или каталога.
Выше перечисленные
Сергей В символы нельзя использовать, потому что это спец.символы cmd.exe (используются ею для собственных нужд), но есть еще куча других символов, которые не являются спец.символами, но от которых cmd.exe так же корежит. Поэтому лучшая рекомендация тут - вообще не использовать не буквенно-цифровые символы в названиях файлов.
Так же сходу могу добавить к списку:
! - при использовании в батнике команды setlocal enabledelayedexpansion восклицательный знак становиться спец.символом
% - внутри батника является спец.символом.
^ - является спец.символом
Символы, которые cmd.exe нормально переносит: _.,~@#-+=/{}[]'` и пробел
Кстати двоеточие, похоже, актуально только для начала файла, в любом другом месте - его использовать можно.
В свое время мне пришлось обходить проблему не стандартных символов в cmd.exe, поэтому знаком с ней не понаслышке.
И еще, проблемы с символами появляются именно в применении к командным файлам cmd.exe, если у вас другая задача, то возможно, эта проблема не будет для вас стоять так остро.