Информация об изменениях

Сообщение Re[6]: Подлянка с -Path/-LiteralPath в PowerShell - что дела от 10.07.2024 14:52

Изменено 10.07.2024 14:53 Shmj

Re[6]: Подлянка с -Path/-LiteralPath в PowerShell - что делать?
Здравствуйте, Евгений Музыченко, Вы писали:

S>>А здесь я что, указывают регулярное выражение? Нет, конечно — я указываю путь к файлу.


ЕМ>В -Path Вы указываете шаблон пути к файлу.


Так может и стоило бы назвать -PathTemplate? Названо Path а реально имеем не Path а PathTemplate.

Не было бы проблем, если бы шаблонные символы были стандартными и запрещены в именах файлов. Но здесь нет — здесь есть символы, которые в именах файлах так же разрешены.

ЕМ>С чего вдруг? New-Item создает конкретный объект с полностью определенным именем. Как Вы представляете себе создание объекта, имя которого представлено шаблоном? А Get-Item/Get-ChildItem выбирают множество существующих объектов, имена которых подпадают под заданное условие (шаблон).


Имя с шаблоными символами создать не возможно, по этому должно вернуть ошибку. Аналогично, если бы вы попытались использовать символ * в имени файла.

По уму, если они вводят сверх стандартных символов * ? еще и какие-то свои, которые могут быть частью имени файла — то назвать PathTemplate

S>>С 1 по 9 пример — получение файлов по пути — везде указан -Path. LiteralPath ни в одном примере нет

ЕМ>

Просьба ответить по существу. Откуда я должен знать что Path — это не путь а какой-то шаблон пути с символами, которые они сами решили назначить управляющими и которые могут быть частью имени файла?
Re[6]: Подлянка с -Path/-LiteralPath в PowerShell - что дела
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Это [p]явно[/p] указано в описании параметра ("Wildcards are accepted").


Так обычно под этим подразумеваются стандартные управляющие символы, которые не могут совпадать с именем файла или папки.

S>>А здесь я что, указывают регулярное выражение? Нет, конечно — я указываю путь к файлу.


ЕМ>В -Path Вы указываете шаблон пути к файлу.


Так может и стоило бы назвать -PathTemplate? Названо Path а реально имеем не Path а PathTemplate.

Не было бы проблем, если бы шаблонные символы были стандартными и запрещены в именах файлов. Но здесь нет — здесь есть символы, которые в именах файлах так же разрешены.

ЕМ>С чего вдруг? New-Item создает конкретный объект с полностью определенным именем. Как Вы представляете себе создание объекта, имя которого представлено шаблоном? А Get-Item/Get-ChildItem выбирают множество существующих объектов, имена которых подпадают под заданное условие (шаблон).


Имя с шаблоными символами создать не возможно, по этому должно вернуть ошибку. Аналогично, если бы вы попытались использовать символ * в имени файла.

По уму, если они вводят сверх стандартных символов * ? еще и какие-то свои, которые могут быть частью имени файла — то назвать PathTemplate

S>>С 1 по 9 пример — получение файлов по пути — везде указан -Path. LiteralPath ни в одном примере нет

ЕМ>

Просьба ответить по существу. Откуда я должен знать что Path — это не путь а какой-то шаблон пути с символами, которые они сами решили назначить управляющими и которые могут быть частью имени файла?