首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何区分Powershell中的空参数和零值参数?

如何区分Powershell中的空参数和零值参数?
EN

Stack Overflow用户
提问于 2013-09-04 15:23:42
回答 3查看 17.7K关注 0票数 8

我希望能够将单个int传递给powershell脚本,并且能够判断何时没有传递变量。我的理解是,以下内容应该识别参数是否为空:

代码语言:javascript
运行
复制
if (!$args[0]) { Write-Host "Null" }
else { Write-Host "Not null" }

在我尝试将0作为int传递之前,它工作得很好。如果我使用0作为参数,Powershell会将其视为null。区分参数为空还是零值的正确方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-04 15:35:37

您可以只测试$args变量或$args.count,看看有多少var传递给了脚本。

$args[0] -eq $null不同于$args[0] -eq 0!$args[0]的另一点是。

票数 11
EN

Stack Overflow用户

发布于 2019-04-17 23:32:18

如果变量在param()中声明为整数,那么即使没有为参数指定值,它的值也将是'0‘。为了防止出现这种情况,您必须将其声明为可空:

代码语言:javascript
运行
复制
param([AllowNull()][System.Nullable[int]]$Variable)

这将允许您使用If ($Variable -eq $null) {}进行验证

票数 2
EN

Stack Overflow用户

发布于 2021-02-23 23:09:52

如果像我这样的用户来自Google,并且想知道如何处理空的命令行参数,这里有一个可能的解决方案:

代码语言:javascript
运行
复制
if (!$args) { Write-Host "Null" }

这将检查$args数组。如果要检查数组的第一个元素(即第一个cmdline参数),请使用OP中的解决方案:

代码语言:javascript
运行
复制
if (!$args[0]) { Write-Host "Null" }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18607788

复制
相关文章

相似问题

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