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