1
我在PowerShell中编写了一个GUI应用程序。它有一个参数。作为文件资源管理器扩展工作的PowerShell脚本
在脚本的开始,我有:将出现表单
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()技术。
[从批处理文件传递参数给PowerShell脚本](可能的重复http://stackoverflow.com/questions/6359618/pass -parameter-from-batch-file-to-the-powershell-script) – Clijsters
你不需要将它包装在函数中并调用函数来传递参数吗?我可能是错的,但那就是我会怎么做。 – nkasco
@nkasco - 你会建议如何在.ps1文件中运行一个函数的注册表项? – lit