Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Нет, не так. Повторяю: проблема не в том, какие символы в именах папок, а в том, какие символы в параметре -Path.
В параметре Path указан путь к папке. Если путь содержит в себе символы [] — то это не работает. Поведение не очевидно.
То что это не путь а шаблон с какими-то своими правилами — не очевидно.
Причем для других команд этот же Path уже трактует символы не как шаблонные.
S>>Я сроку не указываю а передаю результат, который вернула Get-ChildItem.
ЕМ>
ЕМ>Ваши проблемы от того, что Вы лезете в профессиональную сферу с замашками типичного потребителя. Выходов только два: либо изучать предметную область (становиться профессионалом), либо пользоваться только средствами, ориентированными на потребителя (есть визуальные средства автоматизации, где можно мышкой накликать типовые условия и действия).
Вы на личности не переходите, а отвечайте по существу.
Люди мне благодарны, т.к. это поведение не выглядит очевидным. Зачем вы беретесь защищать глупость — не ясно.
S>>можно было бы подумать, что символы [] являются управляющими внутри строки
ЕМ>Об этом не нужно как-то дополнительно думать — они действительно являются "управляющими" в том смысле, что имеют значение, отличное от буквального. И сам факт наличия параметра -LiteralPath должен сразу же наводить на мысль, что он существует неспроста.
В примерах работы с файловой системой он не задействован. Возможно что он нужен для работы с другими ресурсами, не с файлами.
S>>(типа символа $) и я просто забыл их заэкранировать.
ЕМ>Это если там вообще предусмотрена возможность экранирования.
Управляющие символы внутри строки (обычно \) всегда во всех языках можно заэкранировать — иначе глупость получится, что невозможно записать строку с некими символами. Но здесь другой случай.
S>>Я не пишу строку вручную — а просто подсовываю переменную
ЕМ>
ЕМ>Попробуйте все-таки начать изучать программирование, с азов. Иногда это помогает.
Давай конкретно. Написать строку вручную — можно не учесть экранирования символов. И я подчеркнул что строку не писал вручную — даю значение переменное, которую сформировал сам же Get-ChildItem.