在此处打开 Powershell,无法处理包含标点符号的文件夹

在此处打开 Powershell,无法处理包含标点符号的文件夹

我最近遇到了一些问题,Powershell 无法打开某些名称中带有标点符号的文件夹。
因此,我正在寻找一种方法来修改导致此行为的注册表项。
这是我在其中一个文件夹中打开 PS 时收到的实际错误消息:
Powershell Script is missing the Terminator '

这是我目前的命令行:
powershell.exe -noexit -command Set-Location -literalPath '%V'

因此,我认为这可能是一个编码问题,并尝试通过将注册表项修改为以下内容来使用 UTF-8 编码启动 powershell:
powershell.exe -noexit -command Set-Location -literalPath '%V'; "chcp.com 65001"

这不是很成功...我不知道我的思维过程是否正确,这就是为什么我请你帮助我找出问题并确定是否可以解决它。

注意:我仍然可以手动浏览文件夹,而无需修改 PS 中的编码。

答案1

嗯,那是 PS 中的字符串终止字符,所以它按设计工作。

意思是读取到字符后停止。所以不是编码错误。

由于此处打开 PowerShell 只是拉入目录名称和任何带有终止字符的内容,需要直接处理,当然,没有开箱即用的方法可以用该配置执行此操作。

请注意,这不是在此处打开 PowerShell 的错误,就像您在 Windows 资源管理器中以正常方式执行此操作一样...

  • 打开资源管理器
  • 导航到文件夹
  • 按 Alt、F,然后选择使用 PowerShell 打开
  • 或单击工具栏中的 PowerShell 图标

...同样的事情会发生。

您需要从文件夹名称中删除字符串终止符

如果您在代码中执行此操作,则必须将该文件夹括在双引号中。

请参阅帮助文档...

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

相关内容