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

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

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

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

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

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

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

【问题讨论】:

    标签: powershell if-statement variable-assignment


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2021-08-13
        • 2011-02-15
        • 2020-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-09
        相关资源
        最近更新 更多