我最近遇到了一些问题,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 图标
...同样的事情会发生。
您需要从文件夹名称中删除字符串终止符
如果您在代码中执行此操作,则必须将该文件夹括在双引号中。
请参阅帮助文档...