은 Get-ChildItem을 파이프 라인 데이터를 향상시킬 수 있습니다.나는 SQL 스크립트에 테이블과 열 목록을 추출하는 PowerShell을 기능 <code>Invoke-SqlParser</code> (<a href="http://sqlparser.com/" rel="nofollow">GSP</a>를 사용하여)가
내가 구문 분석 엔진의 결과뿐만 아니라, 소스 문서의 경로를 포함하는 CSV 파일을 생성하고 싶습니다 :
이PS > gci '\\path\to\files' -Include *.sql -Recurse | Get-Content -raw | Invoke-SqlParser -Syntax 'oracle' | ConvertTo-Csv | Out-File ~\Desktop\Output.csv
Output.csv
의
원하는 내용 :
File Table Column
---- ----- ------
\\path\to\files\script0.sql table0 column0
\\path\to\files\script0.sql table1 column1
\\path\to\files\scriptB.sql tableB columnR
\\path\to\files\scriptB.sql tableC columnQ
인가 거기는 Get-ChildItem
cmdlet의 내용을 보존하도록 파이프 라인에 Invoke-SqlParser
기능에서 콘텐츠를 추가하는 방법? 아니면 구문 분석 엔진에서 생성 된 파이프 라인에 '삽입'해야합니까?
정상적인 출력 (스위치 포함)을 통해 해당 데이터를 전달하는 기능을 수정할 수는 없습니까? – TheMadTechnician
네,하지만 그렇게 할 수있는 방법이 확실하지 않습니다. 게다가'FullName' 속성이나 전체 FileInfo 인스턴스를 추가합니까? 스크립트 파일과 테이블과 필드 사이에 '일대 다'관계가 있으므로 어떻게 표현할 수 있습니까? 아마도'[PsCustomObject] @ {File = $ FileInfo; TableColumn = @()}'? – craig
'Invoke-SqlParser' 함수를 보지 않고 패스를 전달하는 방법을 모르겠습니다. – TheMadTechnician