Подлянка с -Path/-LiteralPath в PowerShell - что делать?
От: Shmj Ниоткуда  
Дата: 10.07.24 07:25
Оценка: 2 (2) -1 :)
Вот, допустим, хотите вы в PowerShell получить список файлов в папке, смотрите доку: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-childitem?view=powershell-7.4

Get-ChildItem -Path


Вроде все просто. Но!

Это не работает для папок, в пути которых есть символы []. Содержание таких папок просто игнорит

D:\folder_[10]\subfolder1


И нужно использовать не -Path а -LiteralPath.

Знали ли вы об этом? Вот пока не столкнешься — будешь верить что код работает и там же все просто. Ан, нет, что еще раз доказывает тезис — наш мир только в теории кажется простым, пока не попытаешься что-либо сделать.

Как нужно бороться с подобными ошибками?

З.Ы.
Причина в том, что на самом деле это не -Path а шаблон. И символы [] — воспринимает как часть шаблона для поиска — типа [bc]ook matches book and cook. Так же можно использовать и традиционные ? и *, но еще решили добавить и свои кастомные [], которые отдельно могут быть именем папки.
Отредактировано 11.07.2024 4:22 Shmj . Предыдущая версия . Еще …
Отредактировано 10.07.2024 7:26 Shmj . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.