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

时间:2015-05-01 09:32:00

标签: powershell if-statement variable-assignment

有时我需要检查路径名是否以" \"结尾?如有必要,添加它,代码非常简单,像这样

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

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

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

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

  

if:术语'如果'不被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证   路径是正确的,然后再试一次。

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:2)

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

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