如何在不使用引号的情况下向PowerShell脚本传递多词输入短语
实现无引号传递多单词作为单个参数的PowerShell脚本方案
完全可行,只需修改脚本的参数定义,让它能捕获所有传入的剩余参数并合并成单个字符串。
修改后的ask.ps1脚本如下:
param( [Parameter(ValueFromRemainingArguments=$true)] [string[]]$inputParts ) # 将收集到的所有参数合并为单个字符串 $inputString = $inputParts -join ' ' Write-Host "Received input: $inputString"
原理说明
[Parameter(ValueFromRemainingArguments=$true)]属性会让PowerShell把所有未被显式绑定的命令行参数(也就是你输入的what、is、foo这类空格分隔的单词)全部收集到$inputParts数组中。- 通过
-join ' '将数组中的每个元素用空格连接,就能得到包含所有输入内容的单个字符串。
执行ask.ps1 what is foo时,脚本会输出Received input: what is foo,完全符合需求。
内容的提问来源于stack exchange,提问作者Tiago Duarte
相关产品推荐
相关产品推荐

