Здравствуйте, Shmj, Вы писали:
S>Так обычно под этим подразумеваются стандартные управляющие символы, которые не могут совпадать с именем файла или папки.
Это нужно читать, как "
я это всегда подразумевал, и самонадеянно полагал, что так везде и будет". И еще раз: то, что "*" и "?" не допускаются в именах файлов — следствие исключительно того, что этим символы выбраны в качестве шаблонных для
пользовательских утилит. Средства программирования этой традиции следовать не обязаны, ибо не предназначены для рядового пользователя.
А мне вот традиционных "*" и "?" никогда не хватало, поэтому в каждом новом языке/средстве я первым делом смотрю, как там интерпретируются шаблоны, допускаются ли регулярные выражения и т.п.
S>Так может и стоило бы назвать -PathTemplate?
С этим согласен. Но разработчики PowerShell, как и в свое время bash, руководствовались весьма странной логикой. Что-то сделали очень удобно, а что-то — откровенно уродливо и громоздко. Судя по всему, и там, и там сперва пытались выдержать какой-то единый стиль, но в итоге нагромоздили столько исключений, что того стиля почти не видно.
S>Не было бы проблем, если бы шаблонные символы были стандартными и запрещены в именах файлов.
В средствах
программирования для этого нет ни малейшей необходимости. Не путайте с утилитами для необразованного конечного пользователя.
S>здесь есть символы, которые в именах файлах так же разрешены.
А в регулярных выражениях есть символы, которые разрешены в текстах. Пора бы уже понять эту простую идею, коли Вы сподобились заняться программированием.
S>Имя с шаблоными символами создать не возможно
Невозможно создать имя с
запрещенным символом. Запрещенный символ в
общем случае не является шаблонным, и шаблонные символы (опять же в
общем случае) не обязаны быть запрещенными в именах.
S>По уму
Вас не удивляет, что, откровенно протупив во вполне очевидном вопросе, Вы упрекаете кого-то в нехватке ума?
S>если они вводят сверх стандартных символов * ? еще и какие-то свои, которые могут быть частью имени файла — то назвать PathTemplate
Стоило так назвать не потому, что символы допустимы или недопустимы в имени, а потому, что строки в -Path и -LiteralPath имеют разный
смысл и, как следствие, разную
интерпретацию. Когда обрабатывается шаблон, обработчику нет дела до того, какие символы допустимы или недопустимы в имени файла — он просто применяет к ним установленные правила.
S>Просьба ответить по существу.
Я уже по третьему разу разжевал, а Вам все непонятно. Это означает, что в обучении Вы прошли мимо определенных основ, без которых Ваши попытки программирования вырождаются в интуитивную переделку готовых примеров.
S>Откуда я должен знать что Path — это не путь а какой-то шаблон
Из документации, на которую сами же и дали ссылку в первом сообщении. Она написана для того, чтобы ее читали, а не просматривали по диагонали. Единственное, что в этой документации не совсем правильно — примеры почему-то идут до подробного описания параметров. Но эти описания таки есть, они не спрятаны под спойлеры, и даже не вынесены на отдельные страницы. Если Вам раньше приходилось читать документацию по средствам программирования, то Вы не могли не знать, что любые синтаксические элементы, упомянутые в общем описании, непременно подробно описаны где-то далее. Иначе не бывает.
В общем, не ведите себя, как школьница, которую обманом затащили в бордель.