
説明も理解もできない状況に遭遇しました。コマンド ラインで次のコマンドを実行してテキスト ファイルを作成しました。certutil -v -template > documents\templates.txt
6 台のサーバーで実行し、ファイル名で区別する必要があったため、各サーバーでコマンドを変更する必要がないように、PowerShell を使用して $env:COMPUTERNAME 変数を使用することにしました。そこで、PS ISE を開いて次のように入力しました。certutil -v -template | Out-File $env:USERPROFILE\Documents\$env:COMPUTERNAME-templates.txt
PowerShell で生成されたファイルのサイズがちょうど 2 倍であることに気付きました。コマンド ラインで fc コマンドを実行してファイルを比較しようとしたところ、ファイルがあまりにも異なっているという結果になりました。これらのファイルの内容を Excel に入力し (1 つのファイルを列 A、2 つ目を列 K)、スクロールしながら目で違いをスキャンしたところ、違いは見つからず、両方のファイルの行数も同じでした。ラップトップで空のテキスト ファイルを作成し、PowerShell ファイルの内容をコピーして保存すると、コマンド ライン ファイルと同じサイズになります。
つまり、サイズの違いは 200 KB なので問題ではありませんが、PowerShell はコマンド ラインの 2 倍のサイズのファイルを作成しました。その理由は何でしょうか? Powershell によって生成された txt ファイルが、コマンド ラインで生成されたファイルの 2 倍の大きさになるのはなぜでしょうか? ファイルが大きい場合は問題になる可能性があります。
答え1
PowerShell は、UTF-8 ファイルではなく、UTF-16 ベースのファイルを作成すると思います。
したがって、PowerShell では各文字は実際には 2 バイトです。
私は名前を付けて保存メモ帳で UTF-8 として保存すると、ファイル サイズは 1/2 になります。