Символы, которые не допускаются в имени файла:
< (меньше чем)
> (больше чем)
: (двоеточие)
" (двойная кавычка)
/ (косая черта)
\ (обратная косая черта)
| (вертикальная черта или труба)
? (вопросительный знак)
* (звездочка)
в соответствии с соглашениями об именах Microsoft.
Это то, что вы имели в виду?
Причина, вероятно, в том, что было бы слишком сложно иметь дело с файлами с этими символами в старой оболочке command.com , например ? также означает любой символ, * также означает любой файл и т. д.
Вместо того, чтобы учить всех, как обращаться с этими особыми случаями, они запретили это, делая его легче для сценария.
Не было бы эквивалентов Юникода для этих символов, и если бы был эквивалент, он все равно не решил бы эту проблему: существующий ASCII ? и * все равно должен был бы работать в качестве подстановочных знаков, иначе каждый должен был бы переписать свои сценарии.