找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18897|回复: 3

[技术讨论] PowerShell脚本if条件判断的理解

[复制链接]
发表于 2024-4-3 20:33:20 | 显示全部楼层 |阅读模式
下面的代码有点不太理解, if后面的括号不是得返回$true才行吗? 但下面的代码, $webip 可是一个值啊, 这个写法有官方解释的出处吗? 求路过大佬解惑
  1. $webip = [Environment]::GetEnvironmentVariable("webip", [EnvironmentVariableTarget]::Machine)
  2. if ($webip)
  3. {
  4.     # 如果 webip 存在,则执行这里的代码
  5.     Write-Host "webip 存在,其值为: $webip"
  6. }
  7. else
  8. {
  9.     # 如果 webip 不存在,则执行这里的代码
  10.     Write-Host "webip 不存在或其值为空"
  11. }
复制代码
发表于 2024-4-3 21:44:01 | 显示全部楼层
if后面的括号是表达式 , 是判断表达式的真假
怎么才算是合法的表达式 和 怎么判断都是ps说了算
基本上只要不是0 , $null , "" , ''之类的都为真

还有ps里的if ... else跟cmd的一样 , 是一个整体 , 最好不要将else单独写在一行的开头 , 不然某些情况下会被独立解析  , 会提示 : else不是内部或外部命令,也不是可运行的程序

评分

参与人数 1技术 +1 收起 理由
小白龙 + 1 乐于助人

查看全部评分

发表于 2024-4-4 15:29:39 | 显示全部楼层
  1. https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_booleans
复制代码
powershell会自动转换类型,变成了[bool]$webip

评分

参与人数 1技术 +1 收起 理由
小白龙 + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-4-4 15:37:30 | 显示全部楼层
回复 2# Five66


    else单独一行是格式化后的结果, 这个好像不影响语法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 05:08 , Processed in 0.019821 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表