2017-12-01 2 views
0

2 개의 변수 '코드'와 '설명'을 추출하여이 템플릿에 쓰는 스크립트를 작성하려고합니다.CSV에서 파일로 가져 오기

모든 변수 세트에 대해 템플릿을 작성하고 변수를 삽입합니다.

내 CSV 파일은 지금까지

code,description 
0001,first 
0002,second 
0003,third 

내 코드를 다음과 같습니다

$DB = Import-Csv $PSScriptRoot\Variables.csv 

Set-Content $PSScriptRoot\file.txt 

    foreach ($Entry in $DB) { 
     $First = $Entry.First 
     $Second = $Entry.Second 

     # Echo values to verify result (test purposes only) 
     Write-Host $First 
     Write-Host $Second 

     # Write template to file 
     $var= 
     "<CodeDescriptions> 
      <CodeDescription> 
       <Code>*code*</Code> 
       <Description>*description*</Description> 
      </CodeDescription> 
      </CodeDescriptions>" 

     Add-Content $PSScriptRoot\file.txt $var 

     # replace inserts with correct variables 
    } 

나는 여전히 내 목표는 1에서이 개 변수를 추출하는 코드에 익숙해지고 있어요 말했듯 한 번에 한 줄씩. 그런 다음 템플릿을 올바른 변수가있는 파일에 작성하고 모든 변수가 입력 될 때까지 루프를 반복하십시오.

완성 된 제품은 두 가지 문제가이

<CodeDescriptions> 
    <CodeDescription> 
    <Code>0001</Code> 
    <Description>first</Description> 
    </CodeDescription> 
</CodeDescriptions> 
<CodeDescriptions> 
    <CodeDescription> 
    <Code>0002</Code> 
    <Description>second</Description> 
    </CodeDescription> 
</CodeDescriptions> 
<CodeDescriptions> 
    <CodeDescription> 
    <Code>0003</Code> 
    <Description>third</Description> 
    </CodeDescription> 
</CodeDescriptions> 
+0

그래서 변수를 CSV에서 추출한 다음 xml로 출력하고 싶습니까? 답을 더 명확하게 편집하십시오. – deFreitas

+0

두 변수 ('$ First'와'$ Second')에 같은 값 ('$ Entry')을 할당하는 이유와 왜 부분 표현식 ('$() ')? CSV의 구조는 무엇입니까? XML을 어디에서 읽습니까 (템플릿입니까?). –

+0

설명에 더 추가하도록 업데이트했습니다. 코드를 올바르게 업데이트하려고합니다. –

답변

1

과 같을 것이다. 모든

첫째, 가져 오기-CSV는 첫 번째 행의 헤더에 따라 속성의 이름을 정의, 그래서 어떤 당신의 foreach 루프는 다음과 같이 시작합니다

foreach ($Entry in $DB) { 
    $First = $Entry.First 
    $Second = $Entry.Second 

다음과 같이 시작해야 :

foreach ($Entry in $DB) { 
    $Code = $Entry.Code 
    $Description = $Entry.Description 

그런 다음 당신은 당신의 $var$Description$Code*description**code* 교체 (또는 매개 변수를 건너 뛰고 작성해야합니다 :

Add-Content $PSScriptRoot\file.txt @" 
<CodeDescriptions> 
    <CodeDescription> 
     <Code>$Code</Code> 
     <Description>$Description</Description> 
    </CodeDescription> 
</CodeDescriptions> 
"@ 
관련 문제