如何在 SendTo 快捷方式中使用 Powershell 命令参数

如何在 SendTo 快捷方式中使用 Powershell 命令参数

我正在创建一个 SendTo 快捷方式,用于在目录中打开 powershell 提示符。我尝试了两种方法,但还是想用一种无法正常工作的方法。

如果我创建一个 powershell 脚本 - C:\Users\Public\SendTo\PS Here.ps1,其中只有一行代码。

if(Test-Path $args[0] -PathType Leaf)  {Split-Path -path $args[0]  | cd} else { cd $args[0]} 

并创建一个带有命令行的快捷方式 C:\Users...\AppData\Roaming\Microsoft\Windows\SendTo\PowerShell Here.lnk(无启动目录)

%windir%\system32\WindowsPowerShell\v1.0\PowerShell.exe -NoExit -ExecutionPolicy Bypass -File "C:\Users\Public\SendTo\PS Here.ps1"

在资源管理器中执行 SendTo 将打开右键单击的文件夹或包含右键单击文件的文件夹。

如果我尝试使用-Co​​mmand(这是我更喜欢的)在没有中间文件的情况下执行此操作,我会使用快捷方式(没有启动目录)

%windir%\system32\WindowsPowerShell\v1.0\PowerShell.exe -NoExit -Command {if(Test-Path $args[0] -PathType Leaf)  {Split-Path -path $args[0]  | cd} else { cd $args[0]} }

我收到以下错误

At line:1 char:95
+ ... $args[0]} } C:\Users\...\AppData\Roaming\Microsoft\Windows\SendTo\P ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token 'C:\Users\...\AppData\Roaming\Microsoft\Windows\SendTo\Powershell' in expression or statement.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

MS 文档似乎暗示 {} 命令后的数据被视为参数(https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_powershell_exe?view=powershell-5.1 “执行指定的命令(和任何参数),就像它们是在 PowerShell 命令提示符下输入的一样”

关于如何从中删除单独的 PS1 文件,有什么想法吗(当需要在多个帐户之间共享并在机器之间移动时会导致问题?

答案1

继续我的评论。

这不是 PowerShell 代码问题或 PowerShell 功能。

这当然是注册表修改工作。其他人已经做了一段时间了。搜索此类内容可以找到您想要的解决方案。

‘powershell 在这里打开’

命中(S)

如何在 Windows 10 中添加或删除“在此处打开 PowerShell 窗口”上下文菜单

PowerShell 打开此处模块

相关内容