我正在创建一个 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 将打开右键单击的文件夹或包含右键单击文件的文件夹。
如果我尝试使用-Command(这是我更喜欢的)在没有中间文件的情况下执行此操作,我会使用快捷方式(没有启动目录)
%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 功能。
这当然是注册表修改工作。其他人已经做了一段时间了。搜索此类内容可以找到您想要的解决方案。
命中(S)