我有一个从 Windows 快捷方式呼叫的 PS 脚本。我把它放在几个档案或目录上,它作业正常。我想添加一些命名自变量(让我们称它们为:-Param1 和 -Param2),可选,当然,只能从 PowerShell Prompt 使用。
param (
[switch]$CreateShortcut
)
开关自变量起作用。
但是,如果我添加一个字符串自变量:
param (
[switch]$CreateShortcut,
[string]$Param1
)
当然,当我通过 Windows 快捷方式呼叫我的脚本时,它不再起作用:$Param1 接收第一个档案。
有解决办法吗?
谢谢
uj5u.com热心网友回复:
当你洗掉档案/档案夹的快捷方式档案,它们的完整路径是通过为个人,命名自变量,以快捷方式的可执行档案(脚本)。
PowerShell 允许您在单个阵列值自变量中收集此类未命名自变量,方法是将其宣告为ValueFromRemainingArguments
:
[CmdletBinding(PositionalBinding=$false)]
param (
[switch] $CreateShortcut,
# Collect all unnamed arguments in this parameter:
[Parameter(ValueFromRemainingArguments)]
[string[]] $FilesOrFolders
)
[CmdletBinding(PositionalBinding=$false)]
确保任何未显式标记为Position
属性的自变量都必须作为命名自变量传递(即,自变量必须以目标自变量的名称开头,例如-Path foo
)。- 这不是支持
[switch]
自变量所必需的,因为它们是隐式命名的,但它允许您支持[switch]
可以通过显式呼叫(仅)系结的其他非自变量。
- 这不是支持
0 评论