如何在文件夹对象的上下文菜单中添加“使用 PowerShell 打开”并在 PS 启动时加载配置文件

如何在文件夹对象的上下文菜单中添加“使用 PowerShell 打开”并在 PS 启动时加载配置文件

当我右键单击文件夹或文件夹内的空白处时,我希望有一个菜单选项,它将在该位置启动 PowerShell,然后我希望运行一个函数/别名,它将执行展平目录的工作,如果存在同名文件则覆盖。

更新:使用 powershell 上的 get-help cmdlet,我设法破解了这个命令,该命令展平了工作目录并在文件存在时覆盖它。

gci -r -file | move -force -destination $PWD

更新:我在上下文菜单中添加了“使用 PowerShell 打开”regedit

[HKEY_CLASSES_ROOT\Directory\Background\shell\Open with PowerShell]

[HKEY_CLASSES_ROOT\Directory\Background\shell\Open with PowerShell\command]
@="powershell.exe -noexit -command Set-Location '%V'"

[HKEY_CLASSES_ROOT\Directory\shell\Open with PowerShell]

[HKEY_CLASSES_ROOT\Directory\shell\Open with PowerShell\command]
@="powershell.exe -noexit -command Set-Location '%V'"

然后添加function与许多其他语言类似的:

function flatten { gci -r -file | move -force -destination $PWD }

但是我似乎无法让它在打开 powershell 时自动加载。在 bash 中,我会把它放在.bashrc.profile中,它就会加载。

我添加了文件profile.ps1,现在出现此错误:function$pshome

. : File C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1 cannot be loaded because running scripts is disabled
on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:3
+ . 'C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

不确定更改安全设置是否是解决此问题的唯一方法。

如何让加载脚本/别名尽可能安全?

更新:

将命令更改为下面的条目以regedit加载我需要的功能:

powershell.exe -noexit -command Set-Location '%V'; function flatten { gci -r -file | move -destination $PWD -force }

这是一个解决方法。我仍然想知道如何在不对操作系统安全进行危险更改的情况下加载配置文件。

答案1

看看实现类似的功能有帮助。

相关内容