我正在使用此答案中给出的技术的稍微修改版本来在 Windows 文件资源管理器中创建一个上下文菜单项,该项目允许我针对特定文件夹运行 PowerShell 脚本。
该命令如下所示:
cmd /K PowerShell "C:\PowerShellScript\folder_script.ps1 \"%1\" | clip"
Run Code Online (Sandbox Code Playgroud)
除非文件夹名称中包含与号 (&),否则此操作正常。然后我收到以下错误(目标文件夹名为Testing & Testing):
The string starting:
At line:1 char:37
+ C:\PowerShellScript\folder_script.ps1 <<<< "E:\tmp\Testing
is missing the terminator: ".
At line:1 char:53
+ E:\Dropbox\PowerShell\namefixer.ps1 "E:\tmp\Testing <<<<
+ CategoryInfo : ParserError: (E:\tmp\Testing :String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
Run Code Online (Sandbox Code Playgroud)
显然有些东西将&符号解释为特殊字符,但我不知道如何解决这个问题。从文件夹名称中删除&符号对我来说不是一个可行的解决方案。
不涉及批处理脚本的解决方案将是首选。
我使用 Windows 7 Enterprise(64 位)和 PowerShell 2。
powershell ×1