Re[10]: Подлянка с -Path/-LiteralPath в PowerShell - что дела
От: Shmj Ниоткуда  
Дата: 10.07.24 17:34
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Нет, не так. Повторяю: проблема не в том, какие символы в именах папок, а в том, какие символы в параметре -Path.


В параметре Path указан путь к папке. Если путь содержит в себе символы [] — то это не работает. Поведение не очевидно.

То что это не путь а шаблон с какими-то своими правилами — не очевидно.

Причем для других команд этот же Path уже трактует символы не как шаблонные.

S>>Я сроку не указываю а передаю результат, который вернула Get-ChildItem.


ЕМ>


ЕМ>Ваши проблемы от того, что Вы лезете в профессиональную сферу с замашками типичного потребителя. Выходов только два: либо изучать предметную область (становиться профессионалом), либо пользоваться только средствами, ориентированными на потребителя (есть визуальные средства автоматизации, где можно мышкой накликать типовые условия и действия).


Вы на личности не переходите, а отвечайте по существу.

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

S>>можно было бы подумать, что символы [] являются управляющими внутри строки


ЕМ>Об этом не нужно как-то дополнительно думать — они действительно являются "управляющими" в том смысле, что имеют значение, отличное от буквального. И сам факт наличия параметра -LiteralPath должен сразу же наводить на мысль, что он существует неспроста.


В примерах работы с файловой системой он не задействован. Возможно что он нужен для работы с другими ресурсами, не с файлами.

S>>(типа символа $) и я просто забыл их заэкранировать.

ЕМ>Это если там вообще предусмотрена возможность экранирования.

Управляющие символы внутри строки (обычно \) всегда во всех языках можно заэкранировать — иначе глупость получится, что невозможно записать строку с некими символами. Но здесь другой случай.

S>>Я не пишу строку вручную — а просто подсовываю переменную

ЕМ>
ЕМ>Попробуйте все-таки начать изучать программирование, с азов. Иногда это помогает.

Давай конкретно. Написать строку вручную — можно не учесть экранирования символов. И я подчеркнул что строку не писал вручную — даю значение переменное, которую сформировал сам же Get-ChildItem.
=сначала спроси у GPT=
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.