在powershell中使用条件语句和变量

时间:2014-12-23 05:33:24

标签: regex powershell

我正在使用下面的power shell脚本

[regex]$filter_match = 
@'
(?ms)\s*(BEGIN STEP \d+)\s*
\s*BEGIN ATTRIBUTES\s*
\s*name=Filter\s*
.+?
\s*(END STEP \d+)\s*
'@

[regex]$property_match = 
@'
(?ms)\s*(BEGIN PROPERTY 2)\s*
\s*(BEGIN ATTRIBUTES)\s*

.+?
\s*(END ATTRIBUTES)\s*
\s*(END PROPERTY 2)\s*

'@

[regex]$vector_match = 
@'
(?ms)\s*(BEGIN VECTOR val_string val_string_pos)\s*
.+?
\s*(END VECTOR)\s*
'@

$text = get-content  D:\Work_Directory\Test_Sanjeev_2.pln -Delimiter "0"
$results = $filter_match.Matches($text)

$results2 = $property_match.Matches($results)

$results3 = $vector_match.Matches($results2)

$results3 

如何包含条件语句,我想知道vector_match是成功还是失败。我将在两个不同的变量中添加它们,并可以在末尾解析以获取列表。

示例数据:

SAGENT EXPORT FILE
VERSION 18
LOCALE_INFO "1252",".","","-",".".
BEGIN PLAN
  BEGIN ATTRIBUTES
    name=Test_Sanjeev_2
    is_component=0
    last_saved_date=2456974,12:42:45.000
    i18n=12
  END ATTRIBUTES
  BEGIN STEP 1
    BEGIN ATTRIBUTES
      name=Subplan
      step_id={266A5A63-1F95-4B8D-A4D5-50C303E63C66}
      step_type=11
      is_component=0
    END ATTRIBUTES
    BEGIN PROPERTY 1
      BEGIN ATTRIBUTES
        name=AllProperties
        value_type=1
        custom=0
        is_proxy=0
        BEGIN VECTOR val_string val_string_pos
          [1]=14EDD4F179EB3BD1E97F2A4C14B41708A75EB6CA57C32D31C78DDCCDF1D50152344DA67D4785772CD4820464D7A03607F3460457B612E317F6670335D517443F24A0C31A0F2AE7166 65-1DEE05E0-BA48-11CF-B2C7-00A02448857E
          [1]=0
        END VECTOR
      END ATTRIBUTES
    END PROPERTY 1
    BEGIN STEP 2
      BEGIN ATTRIBUTES
        name=Grid
        step_id={59EC3F6D-E77F-479F-8C2D-65CE808B6D23}
        display_x=546
        display_y=108
      END ATTRIBUTES
      BEGIN STEPTYPE
        BEGIN ATTRIBUTES
          name=Grid
          clsid={4B343B81-BCED-11D0-B0B7-00A0C91FDBFC}
          step_type=2
          input_count=1
          output_count=1
          sink=1
          source=0
          dc_step_type=304
          icon_id=0
          visibility=IS/C
          ui_clsid={fe294e93-d35a-11ce-814a-0020afea3965}
          tip_text=Displays results in column format
        END ATTRIBUTES
      END STEPTYPE
      BEGIN PROPERTY 1
        BEGIN ATTRIBUTES
          name=PresentationColumnInformation
          value_type=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=0   3   BEGIN_COL   113 459 ##FIELDID##{4864CA4D-0D44-4FB2-9A45-53B054CC3AAB}0  Year    2       262145  2   0   0   0   0   END_COL 
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 1
      BEGIN PROPERTY 2
        BEGIN ATTRIBUTES
          name=PresentationParameterInformation
          value_type=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=0   3   0   1   0   4000    1   0   1400    
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 2
      BEGIN PROPERTY 3
        BEGIN ATTRIBUTES
          name=PresentationColumnHeadingInformation
          value_type=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=0   3   0   404 16498431    1   4   0   52520   0 0 0 0 0 0 0 0 0   2   16777215    Arial,8,700,0,0,0   
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 3
      BEGIN PROPERTY 4
        BEGIN ATTRIBUTES
          name=PresentationRowHeadingInformation
          value_type=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=0   3   0   404 16498431    0   0   0   52520   0 0 255 255 255 0 0 0 0 0   -167772160  Arial,8,700,0,0,0   
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 4
    END STEP 2
    BEGIN STEP 3
      BEGIN ATTRIBUTES
        name=Filter
        step_id={35072F75-2F71-417C-8E39-4BA14CD74A4A}
        display_x=366
        display_y=108
      END ATTRIBUTES
      BEGIN STEPTYPE
        BEGIN ATTRIBUTES
          name=Filter
          clsid={4B343BA1-BCED-11D0-B0B7-00A0C91FDBFC}
          step_type=5
          input_count=1
          output_count=1
          sink=0
          source=0
          dc_step_type=303
          icon_id=0
          visibility=IS/G
          rt_clsid={fe294e0d-d35a-11ce-814a-0020afea3965}
          ct_clsid={fe294e0d-d35a-11ce-814a-0020afea3965}
          ui_clsid={fe294e0d-d35a-11ce-814a-0020afea3965}
          tip_text=Removes rows using filter conditions
        END ATTRIBUTES
      END STEPTYPE
      BEGIN PROPERTY 1
        BEGIN ATTRIBUTES
          name=MatchCase
          value_type=3
          val_int=0
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 1
      BEGIN PROPERTY 2
        BEGIN ATTRIBUTES
          name=TEXTVALUE
          value_type=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=0.000000
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 2
      BEGIN PROPERTY 3
        BEGIN ATTRIBUTES
          name=strOperator
          value_type=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]==
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 3
      BEGIN PROPERTY 4
        BEGIN ATTRIBUTES
          name=FIELD
          value_type=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=Year
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 4
      BEGIN PROPERTY 5
        BEGIN ATTRIBUTES
          name=strValueType
          value_type=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=number
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 5
      BEGIN PROPERTY 6
        BEGIN ATTRIBUTES
          name=USERINIT
          value_type=3
          val_int=1
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 6
      BEGIN PROPERTY 7
        BEGIN ATTRIBUTES
          name=EXPRESSIONS
          value_type=3
          val_int=0
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 7
      BEGIN PROPERTY 8
        BEGIN ATTRIBUTES
          name=FIELDID
          value_type=1
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=##FIELDID##{4864CA4D-0D44-4FB2-9A45-53B054CC3AAB}0
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 8
      BEGIN PROPERTY 9
        BEGIN ATTRIBUTES
          name=UpdateInPlace
          value_type=3
          val_int=1
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 9
      BEGIN PROPERTY 10
        BEGIN ATTRIBUTES
          name=VALUETYPE
          value_type=3
          val_int=14
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 10
      BEGIN PROPERTY 11
        BEGIN ATTRIBUTES
          name=Version
          value_type=3
          val_int=3
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 11
      BEGIN PROPERTY 12
        BEGIN ATTRIBUTES
          name=Copy
          value_type=3
          val_int=1
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 12
      BEGIN PROPERTY 13
        BEGIN ATTRIBUTES
          name=FIELDIDVALUE
          value_type=1
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=##FIELDID##{35072F75-2F71-417C-8E39-4BA14CD74A4A}-1
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 13
      BEGIN PROPERTY 14
        BEGIN ATTRIBUTES
          name=OPERATOR
          value_type=3
          val_int=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 14
    END STEP 3
    BEGIN STEP 4
      BEGIN ATTRIBUTES
        name=Time Generation
        step_id={4864CA4D-0D44-4FB2-9A45-53B054CC3AAB}
        display_x=166
        display_y=108
      END ATTRIBUTES
      BEGIN STEPTYPE
        BEGIN ATTRIBUTES
          name=Time Generation
          clsid={4B343B8B-BCED-11D0-B0B7-00A0C91FDBFC}
          step_type=5
          input_count=1
          output_count=1
          sink=0
          source=1
          dc_step_type=303
          icon_id=0
          visibility=ISD/T
          rt_clsid={fe294e69-d35a-11ce-814a-0020afea3965}
          ct_clsid={fe294e69-d35a-11ce-814a-0020afea3965}
          ui_clsid={fe294e69-d35a-11ce-814a-0020afea3965}
          tip_text=Generates date and time values in the Data Flow
        END ATTRIBUTES
      END STEPTYPE
      BEGIN PROPERTY 1
        BEGIN ATTRIBUTES
          name=duration
          value_type=3
          val_int=1000
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 1
      BEGIN PROPERTY 2
        BEGIN ATTRIBUTES
          name=num_cols
          value_type=3
          val_int=1
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 2
      BEGIN PROPERTY 3
        BEGIN ATTRIBUTES
          name=type_0
          value_type=3
          val_int=4
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 3
      BEGIN PROPERTY 4
        BEGIN ATTRIBUTES
          name=col_0
          value_type=1
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]=Year
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 4
      BEGIN PROPERTY 5
        BEGIN ATTRIBUTES
          name=portguid_0
          value_type=1
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
          BEGIN VECTOR val_string val_string_pos
            [1]={8D665387-7CC5-4DA2-8167-2D1A6647A625}
            [1]=0
          END VECTOR
        END ATTRIBUTES
      END PROPERTY 5
      BEGIN PROPERTY 6
        BEGIN ATTRIBUTES
          name=julian_day
          value_type=3
          val_int=0
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 6
      BEGIN PROPERTY 7
        BEGIN ATTRIBUTES
          name=input_type
          value_type=3
          val_int=0
          custom=0
          is_list=0
          value_attrs=0
          openlink=0
          is_proxy=0
        END ATTRIBUTES
      END PROPERTY 7
    END STEP 4
  END STEP 1
  BEGIN FLOW 1
    BEGIN ATTRIBUTES
      name=Flow
      source_output_no=0
      dest_input_no=0
    END ATTRIBUTES
    SOURCE_STEP=1282415966877122563
    DESTINATION_STEP=1282415966877122562
  END FLOW 1282415966877122561
  BEGIN FLOW 2
    BEGIN ATTRIBUTES
      name=Flow
      source_output_no=0
      dest_input_no=0
    END ATTRIBUTES
    SOURCE_STEP=1282415966877122564
    DESTINATION_STEP=1282415966877122563
  END FLOW 1282415966877122562
END PLAN
END

1 个答案:

答案 0 :(得分:1)

在我的例子中,一个简单的If语句可以解决问题。

$results3 = $vector_match.Matches($results2)
if($results3){ "Success" } else{ "Failiure"}