Powershell (v2) Путь серьезного ударения (escape-символ) конфликтует с Get-ChildItem

У меня есть друг с видео на моем компьютере. Путь

C:\Users\Me\Videos\Tonys Videos\Dinosaur [1080p]\

В папке фильма "Динозавр" находится папка "asset", которая содержит несколько файлов.gif,.jpg и.png. Я хотел немного узнать о Powershell, поэтому я изменил каталог с помощью...

cd "C:\Users\Me\Videos\Tonys Videos\Dinosaur ``[1080p``]\assets"

Символ (`) был необходим для специальных символов в скобках и цитат для пробела в папке"Tonys Videos". Я могу напечатать Get-ChildItem, и весь список будет заполнен очень хорошо, но я сталкиваюсь с ошибками, когда пытаюсь использовать флаг исключения (независимо от того, "исключена" одна или несколько строк, он по-прежнему не выводится.

Я запустил еще один тест, в котором я скопировал папку "assets" в "Tonys Videos" (таким образом, серьезный акцент был бы опущен, и все прошло нормально. Я использую PS v2.0, но это действительно не должно сильно измениться. Мой вопрос: почему "Get-ChildItem -exclude" не работает с серьезными акцентами?

В ответ на комментарий это моя попытка с Get-ChildItem

Get-ChildItem "C:\Users\Me\Videos\Tonys Videos\Dinosaur ``[1080p``]\assets" -Exclude *.jpg,*png

Я протестировал этот же формат (как указано выше) в папке "Tonys Videos", и он работал просто отлично. Спасибо за вашу постоянную помощь.

2 ответа

Решение

Когда есть специальные ключи в пути, используйте Get-ChildItem -LiteralPath "YourPath", С -LiteralPath вам не нужно (`).
Что ты пишешь по исключению?

Для меня это работает:

Get-ChildItem -Path "C:\temp\``[TEST``]\*.*" -Exclude *.jpg,*.png


Вам нужно \*.* что вы можете что-то исключить. С Get-ChildItem -LiteralPath ты не можешь использовать \*.*,

Вы можете использовать это?

Get-ChildItem -Path "C:\temp\``[TEST``]" | Where-Object -FilterScript {$_.Name -notlike "*.jpg" -and $_.Name -notlike "*.png"}


Может быть, другой пользователь знает, почему исключение не работает.

Вы также можете включить строку в одинарные кавычки, которые не будут пытаться расширить или интерпретировать содержимое строки. Обратите внимание, что переменные тоже не будут расширяться.

Другие вопросы по тегам