我有一個從 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]可以通過顯式呼叫(僅)系結的其他非引數。
- 這不是支持
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/389639.html
上一篇:我如何使用powershell在.txt中使用像<這樣的運算子在.txt中添加內容?使用分隔符來處理文本?
下一篇:執行后運行點源腳本時出錯
