2017-09-29 17 views
1

これは私が慣れていないユニコードの問題かもしれません。 作業中のマシンをパッチするためのスクリプトを作成しました。パッチには設定ファイル(.ini)に行が追加されています。設定ファイルは空白行で始まらなければなりません(どうして私に質問しないでください)。スクリプトを実行すると、ファイルの先頭に空白行が表示されます。キャラクター。それがどこから来ているのか分かりません。Powershellがファイル内の空白文字を置き換えています

$computer = Read-Host -Prompt 'Computer Name: ' 
$Path = "\\" + $computer + "\c$\Program Files\WinMagic\SecureDoc-NT\UserData\" 
$fileName = $path + "SecurDoc.ini" 

$content = Get-Content $fileName 
$content[1] += "`r`nWMGAutoFix=1" 
$content | set-content $fileName 
+2

PowerShellのバージョンは何ですか?ソースファイルのエンコーディングとは何ですか?前後にサンプルを追加できますか?また、最初の行ではなく2行目に空白行を追加しているように見えます。 – Matt

+0

私は正しい方向に向いているので、それを理解しました。スクリプトはデフォルトでファイルをANSIに変換していました。私はすでにスクリプトを実行していたマシン上のファイルのエンコーディングを常にチェックしていました。 別のマシンをチェックすることができました。エンコードはUnicodeです。私はset-contentの後に-encoding Unicodeフラグを追加しました。ありがとう!!! – kl365

答えて

2

PowershellはデフォルトでファイルをANSIとしてエンコードします。解決方法は次のとおりです。

$content | Set-Content $filename -encoding Unicode 
関連する問題