Сообщение 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 — это не путь а какой-то шаблон пути с символами, которые они сами решили назначить управляющими и которые могут быть частью имени файла?
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 — это не путь а какой-то шаблон пути с символами, которые они сами решили назначить управляющими и которые могут быть частью имени файла?
ЕМ>Это [p]явно[/p] указано в описании параметра ("Wildcards are accepted").
Так обычно под этим подразумеваются стандартные управляющие символы, которые не могут совпадать с именем файла или папки.
S>>А здесь я что, указывают регулярное выражение? Нет, конечно — я указываю путь к файлу.
ЕМ>В -Path Вы указываете шаблон пути к файлу.
Так может и стоило бы назвать -PathTemplate? Названо Path а реально имеем не Path а PathTemplate.
Не было бы проблем, если бы шаблонные символы были стандартными и запрещены в именах файлов. Но здесь нет — здесь есть символы, которые в именах файлах так же разрешены.
ЕМ>С чего вдруг? New-Item создает конкретный объект с полностью определенным именем. Как Вы представляете себе создание объекта, имя которого представлено шаблоном? А Get-Item/Get-ChildItem выбирают множество существующих объектов, имена которых подпадают под заданное условие (шаблон).
Имя с шаблоными символами создать не возможно, по этому должно вернуть ошибку. Аналогично, если бы вы попытались использовать символ * в имени файла.
По уму, если они вводят сверх стандартных символов * ? еще и какие-то свои, которые могут быть частью имени файла — то назвать PathTemplate
S>>С 1 по 9 пример — получение файлов по пути — везде указан -Path. LiteralPath ни в одном примере нет
ЕМ>
Просьба ответить по существу. Откуда я должен знать что Path — это не путь а какой-то шаблон пути с символами, которые они сами решили назначить управляющими и которые могут быть частью имени файла?