在变量赋值powershell中执行if语句

Posted

技术标签:

【中文标题】在变量赋值powershell中执行if语句【英文标题】:execute if statement in variable value assignement powershell 【发布时间】:2015-07-11 03:28:52 【问题描述】:

有时我需要检查路径名是否以“\”结尾,必要时添加,代码很简单,类似这样

if ($destFolder[-1] -ne '\') 
    $destFolder += '\';

有没有办法评估 () 中的 if 语句,以便我可以在变量赋值中使用它?我的意思是这样的

$finalName = $destFolder + (if ($destFolder[-1] -ne '\')  '\'  ) + $fileName

鉴于 if 不是 cmdlet 我收到此错误

if :术语“if”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证 路径正确,然后重试。

【问题讨论】:

【参考方案1】:

这里需要一个子表达式 ($()):

$finalName = $destFolder + $(if ($destFolder[-1] -ne '\')  '\' ) + $fileName

表达式运算符(() 没有 $)只允许简单的语句/表达式。

【讨论】:

【参考方案2】:

为了便于阅读,您可以将 if 语句的整个结果分配给一个变量:

$finalName = if ($destfolder[-1] -ne '\') 
    $destfolder + '\' 
 else 
    $destfolder

【讨论】:

以上是关于在变量赋值powershell中执行if语句的主要内容,如果未能解决你的问题,请参考以下文章

python赋值是啥?

C语言程序设计 指针变量赋值

select 查询变量

mysql 如何给变量赋一个动态sql执行的结果

PowerShell中If语句的多个变量条件

未在定义语句中赋初值的auto变量和static变量的初值都是随机值。请问这句话错在哪里?