1

Недавно я столкнулся с некоторыми проблемами, связанными с Powershell, который не хотел открываться в определенных папках с пунктуацией в имени.
Это способ, которым я ищу способ изменить раздел реестра, ответственный за это поведение.
Это фактическое сообщение об ошибке, которое я получаю при открытии PS в одной из следующих папок:
Powershell Script is missing the Terminator '

И это моя командная строка:
powershell.exe -noexit -command Set-Location -literalPath '%V'

Поэтому я подумал, что, возможно, это проблема кодировки, и попытался запустить powershell с кодировкой UTF-8, изменив ключ реестра следующим образом:
powershell.exe -noexit -command Set-Location -literalPath '%V'; "chcp.com 65001"

Который был не очень успешным ... Я не знаю, правильный ли мой процесс «хотя», поэтому я прошу вас помочь мне разобраться в проблеме и решить ее.

NB: я все еще могу вручную просматривать папку без изменения кодировки в PS.

1 ответ1

2

Ну, это символ завершения строки в PS, так что он работает как задумано.

Смысл чтения, вплоть до характера и остановки. Итак, не ошибка кодирования.

Поскольку Open PowerShell Here, просто извлекает имя dir и что-либо с завершающими символами, необходимо обрабатывать напрямую, и, конечно, нет никакого готового способа сделать это с этой конфигурацией.

Обратите внимание, что это не ошибка Open PowerShell Here, как если бы вы делали это обычным способом в Windows Explorer ...

  • Открытый проводник
  • перейти к папке
  • Нажмите Alt, F и выберите «Открыть с помощью PowerShell».
  • или щелкните значок PowerShell на панели инструментов

... то же самое произойдет.

Вам необходимо удалить символы, которые являются символами конца строки, из имен вашей папки

Если вы делаете это в коде, то вы должны заключить эту папку в двойные кавычки.

Смотрите справочные документы для ...

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_quoting_rules?view=powershell-6

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .