首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将变量名输出到用户

将变量名输出到用户
EN

Stack Overflow用户
提问于 2018-02-28 20:44:41
回答 2查看 84关注 0票数 1

当未向脚本提供参数时,我希望在Write-Error消息中以字符串的形式包含参数/变量名:

代码语言:javascript
复制
$RequiredArgs = @($Arg1, $Arg2, $Arg3, $Arg4)

foreach ($Arg in $RequiredArgs) {
    if (!($Arg)) {
        Write-Error "Argument: $Arg is required."
        throw
    }
}

这当前输出的是Argument: is required.。我尝试引用变量名:

代码语言:javascript
复制
Write-Error "Argument: "$Arg" is required."

但下面显示了错误:Write-Error: A positional parameter cannot be found that accepts argument ' is required.

有没有一种方法可以输出变量名,即使没有设置参数?

EN

回答 2

Stack Overflow用户

发布于 2018-02-28 20:46:46

是,使用single quotes:

代码语言:javascript
复制
Write-Error 'Argument: "$Arg" is required.'

考虑使用强制参数属性来指定脚本中所需的参数:

代码语言:javascript
复制
Param
(
    [Parameter(Mandatory=$true)]
    $Arg1
)

Write-Host "Hello $Arg1"

现在,如果您尝试执行脚本并省略参数,系统将提示您输入这些参数:

票数 2
EN

Stack Overflow用户

发布于 2018-02-28 20:57:04

除了马丁已经提到的,你可以做到这一点-

代码语言:javascript
复制
$RequiredArgs = @($Arg1, $Arg2, $Arg3, $Arg4)

foreach ($Arg in $RequiredArgs) {
    if (!($Arg)) {
        Write-Error "Argument: $($Arg) is required."
        throw
    }
}

$($Arg)语法有助于计算$Arg中的表达式。有关详细信息,请参阅this SO链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49029911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档