假设我有以下testArgsX.ps1文件:
$ARG_X_PARAMETER=1
If ($args[0] -ne "") {
echo ARGS[X]="`"$args[0]`""
$ARG_X_PARAMETER=$args[0]
}
echo ARG_X_PARAMETER=$ARG_X_PARAMETER
当我在命令提示符 ( C:\Test> powershell .\testArgsX.ps1) 或 PowerShell 提示符 ( PS C:\Test> .\testArgsX.ps1) 中执行它时,它会输出以下内容:
ARGS[X]="[0]"
ARG_X_PARAMETER=
在 if 条件中,似乎$args[0]没有被解释为标量值。虽然我知道有两种方法可以规避这个问题(如下所示)。我想知道为什么它不将其解释为标量值,以及是否有办法解决它。
- 取出整个 if 语句 (
If ( ... ) { ... }) 并替换为Param ( [Int]$RUN_JUST_ONCE = 1 ) - 将 if 条件从更改
If ($args[0] -ne "") {为If ($args.Length -gt 0) {