从PowerShell代码访问FinalBuilder变量

时间:2011-11-23 15:58:40

标签: powershell finalbuilder

我在“FinalBuilder”项目中添加了“Execute PowerShell Script”操作。手册说我可以使用以下语法(在Specify Script区域中输入)访问FinalBuilder变量:

$FBVariables.GetVariable("VarName")

但问题是$FBVariables在我的情况下总是null,我的意思是跟随语句返回True

$FBVariables -eq $null

我不知道我做错了什么。

2 个答案:

答案 0 :(得分:3)

$FBVariablesExecute PowerShell Script操作中不可用。

您必须使用Run Script(或我认为旧版本中的Execute Script)操作,在Script Editor标签中将语言设置为Powershell,您可以在此使用{{1} }

http://www.finalbuilder.com/Default.aspx?tabid=456&aft=9647#10952

答案 1 :(得分:0)

以下是LogVariables Action中包含的工作PowerShell脚本的示例。我发现你无法使用PowerShell Action和变量,所以我只是使用了另一个动作并添加了一个脚本来传递/传出Powershell Commandlets中的信息。

Powershell脚本

Function ConvertNametoFolder([string]$FileName="VirtualServerInstanceName.web.config",    [string]$FileSuffix="web.config")
{
   [string]$Result = ""
   if ($FileLen -ne "")
   {
      [int]$FileLen = $FileName.Length
      [int]$SuffixLen = $FileSuffix.Length
      $Result = $FileName

      $Result = $FileName.SubString(0,($FileLen-$SuffixLen)-1)

      # String join method (not safe)
      #$Result =  $Result + "\" + $FileSuffix

      # .net Framework safe method for combining folder\file paths to Windows Standards.
      $Result = [System.IO.Path]::Combine($Result, $FileSuffix)
    }
Return $Result
}

$FileIn = $FBVariables.GetVariable("varWebConfigFilePath") # Passed-in at runtime
[string]$PathOut =  ConvertNametoFolder $FileIn
$FBVariables.GetVariable("varIisSettingFile")
$FBVariables.SetVariable("varWebConfigFileDestinationPath", $PathOut)