2016-07-19 10 views
0

こんにちはにコンテンツを書くいくつかのいずれかが処理テキストファイルやHTML出力

function TextToHtml { 
    $SourceFile = "C:\sample.txt" 
    $TargetFile = "C:\TestOutput.htm" 

    $TextData = Get-Content $SourceFile 

    foreach ($Line in $TextData) { 
     $LineData = $FileLine + $Line 
    } 

    $LineData | ConvertTo-HTML | Out-File $TargetFile 
} 
私を助けることができる私は、HTML形式の出力にテキストファイルの内容をエクスポートするには、次のコードを書かれているが、予想通り、私は結果を取得しておりませんすべて

enter image description here

+0

? – SavindraSingh

+0

どのような出力を期待していますか? 'sample.txt'の内容は何ですか? –

答えて

2

ConvertTo-Htmlオブジェクトプロパティリストまたはテーブル内の値にを回します。文字列には1つのプロパティー、Lengthしかありません。これが出力の値です。

は、プロパティ値として $LineDataを持つ新しいオブジェクトを作成し、あなたは

function TextToHtml 
{ 
    $SourceFile = "C:\sample.txt" 
    $TargetFile = "C:\TestOutput.htm" 

    $TextData = Get-Content $SourceFile 

    Foreach ($Line in $TextData) { 
     $LineData = $LineData + $Line 
    } 
    New-Object psobject -Property @{Text = $LineData} | ConvertTo-HTML -Property Text | Out-File $TargetFile 

} 

は、あなたの関数は、より多くの再利用可能なパラメータに、ソースとターゲットのファイルパスを有効にするには、意味のある出力が得られます。

あなたはまた、単に-join演算子使用し、お互いにそれらを追加する$TextDataに各文字列を反復処理する必要はありません:あなたは唯一持っているオブジェクトに対して*ヘッダを回避したい場合

function TextToHtml 
{ 
    param(
     [string]$SourceFile = "C:\sample.txt", 
     [string]$TargetFile = "C:\TestOutput.htm" 
    ) 

    $TextData = Get-Content $SourceFile 

    $LineData = $TextData -join '' 

    New-Object psobject -Property @{Text = $LineData} | ConvertTo-HTML | Out-File $TargetFile 

} 

をあなたはそれがだで各ラインを表示したい場合は

ConvertTo-Html -Property Text 

:1つのプロパティは、明示的Textプロパティを選択しConvertTo-Html-Propertyパラメータを使用します自分のテーブル行は、代わりにConvertTo-Htmlに直接連結し、パイプの文字列をスキップ:

function TextToHtml 
{ 
    param(
     [string]$SourceFile = "C:\sample.txt", 
     [string]$TargetFile = "C:\TestOutput.htm" 
    ) 

    Get-Content $SourceFile | ConvertTo-HTML -Property @{Label='Text';Expression={$_}} | Out-File $TargetFile 

} 
+0

こんにちは、奇妙なシンボルが来ているのですが、もし私が各行を表示したいのであれば、それも可能です。 – Learner

+0

@Learner Updated Answer –

+0

Thanks Mathias R. Jessen – Learner

0

私たちは上記の質問に貼り付けコードで行く場合。 $ FileLine(ここでは空白または空白)の値と、そのファイルの最後の行のテキストが表示されます。

しかし、あなたはすべての行を持っているだけでなく、コードの下に使用したい場合:ここでは `$ FileLine`に格納されて何

function TextToHtml 
{ 
    $SourceFile = "C:\sample.txt" 
    $TargetFile = "C:\TestOutput.htm" 
    $TextData = Get-Content $SourceFile 

    Foreach ($Line in $TextData) { 
     $LineData = $FileLine + $LineData + $Line 
    } 
    $LineData | ConvertTo-HTML | Out-File $TargetFile 

}