【发布时间】:2017-08-18 19:24:08
【问题描述】:
我在 PowerShell 中编写了一个 GUI 应用程序。它只有一个参数。
在脚本的开头我有:
param (
[string]$Path
)
在表单出现之前,我用$Path填写了一个控件:
$Form.Add_Load({
$txtSourceFile.Text = $Path
})
当我在 PowerShell 中以交互方式运行脚本时,它似乎按预期工作。 txtSourceFile 控件由命令行中的参数填充。
.\ghead.ps1 -Path C:\src\data\ghead.ps1
但是,当我将它作为文件资源管理器扩展运行时,它似乎没有从命令行接收参数。该命令的注册表设置为:
C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.EXE C:\\Users\\lit\\bin\\ghead.ps1 -Path %1
没有错误信息。它根本不填写$txtSourceFile.Text 字段。我错过了什么明显的东西吗?我怎样才能让它工作?
建议作为重复的问题不涉及作为 Windows 文件资源管理器扩展运行。我已经在使用 param() 技术了。
【问题讨论】:
-
您不必将其包装在一个函数中并调用该函数以那样传递参数吗?我可能错了,但我就是这样做的。
-
@nkasco - 您建议使用什么注册表项来在 .ps1 文件中运行函数?
-
这里的路径值是多少,你可以在注册表中硬编码路径并尝试吗?
标签: powershell registry