有没有办法每次双击都用我的PowerShell编译脚本启动文件



我创建了一个PowerShell脚本,然后用PS2EXE进行编译。该程序加载*.JSON文件并允许用户对其进行编辑。该程序从文件浏览器窗口开始,选择要加载的正确*.JSON。

现在我想通过双击*.JSON并跳过文件浏览器窗口来运行程序。所以我右击文件>选择打开>并选择mypowershellapp.exe并检查$PWD变量。但它始终是system32目录。

那么:如何获取程序启动的文件路径?

事实上:当您使用文件资源管理器的Open with...快捷菜单并选择要将手头的文档传递给的应用程序时,该应用程序总是以C:WindowsSYSTEM32作为其工作目录启动。

但是,手头的文档是通过其完整路径作为参数传递的,因此您可以推断出它所在的目录

也就是说,在(编译的(*.ps1脚本中,执行以下操作:

# Note: 
#  * Use of $args[0] assumes that your script declares no formal parameters.
#  * Adjust as needed.
# $args[0] is the document's full *file* path.
# Split-Path -Parent extracts the *directory* path from it.
$dir = Split-Path -Parent $args[0]

当然,您也可以将此目录传递给Set-Location以更改应用程序的工作目录。

最新更新