2017-01-05 8 views
1

テキストファイルを開き、特定のエンコーディングオプションを選択するようにPowerShellに指示しようとしています。既定では、Wordでこのテキストファイルを手動で開くと、日本語のエンコードで開こうとするため、特定の文字が正しく表示されません。ワードドキュメントを開き、PowerShellでエンコーディングを指定します。

私はさまざまなことを試しましたが、何も動作しないため、私は完全に固執しています。

このテキストファイルは、とりわけPDFに日常的に変換する必要があります。

次のように私の現在のスクリプトである:

$wdFormatPDF = 17 

$word = New-Object -ComObject Word.Application 
$word.Visible = $true 

$folderpath = "C:\Users\smirabile\Downloads\report-testing-destination\*" 
$fileTypes = "accepted.spl" 

Get-ChildItem -Path $folderpath -Include $fileTypes | ForEach-Object { 
    $path = ($_.FullName).Substring(0, ($_.FullName).LastIndexOf(".")) 

    $doc = $word.Documents.Open($_.FullName) 

    $Word.Selection.PageSetup.Orientation = 1 
    $Word.Selection.PageSetup.LeftMargin = 20 
    $Word.Selection.PageSetup.RightMargin = 20 
    $doc.Select() 
    $Word.Selection.Font.Size = 9 
    $doc.SaveAs([ref]$path, [ref]$wdFormatPDF) 

    $doc.Close() 
} 

$word.Quit() 
Stop-Process -Name WINWORD -Force 

答えて

0

疑いで、documentationを読み込む場合:

構文

expression.Open(FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, 
    PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, 
    WritePasswordTemplate, Format, Encoding, Visible, OpenConflictDocument, 
    OpenAndRepair, DocumentDirection, NoEncodingDialog) 

[…]
エンコーディング |オプション| バリアント |保存されたドキュメントを表示するときにMicrosoft Wordで使用されるドキュメントのエンコード(コードページまたは文字セット)。任意の有効なMsoEncoding定数を使用できます。 […]デフォルト値はシステムコードページです。

デフォルト値で使用するパラメータには[Type]::Missingを使用してください。 (ISO-8859-15エンコーディングを使用して)

例:

$def = [Type]::Missing 
$doc = $word.Documents.Open(
     $_.FullName, $def, $def, $def, $def, $def, $def, $def, $def, $def, 28605 
     ) 
+0

は、私はすでにこの記事を読んだことを言及するのを忘れてしまったが、私はそれは難しいかを理解したり、実行するコードを書く方法を見つけることですこの。 これまでのところ $ Word.expression.Open($ Encoding:= 65001) これはうまくいかず、私が試した他の多くの変種もありません。申し訳ありませんが、PowerShellの経験はあまりありません。 – Sal

+0

名前付きパラメータは使用できません。すべてのパラメータは正しい順序で提供されなければならず、デフォルト値の後続のリストのみを省略することができます。私が提供した例を見てください。それは理由があります。 –

+0

申し訳ありませんが、何らかの理由であなたの例が見えませんでした。あなたのコードを使っていても、その行に$ defが複数ある理由を説明できますか? – Sal