このスクリプトをWindows 2012 R2の50GBファイルで実行しようとしていますが、3つのパスを3つではなく1つのパスにすることを望みます。また、置換がその順序で行われることも重要です。これを簡略化して効率的に実行するための提案は、非常に高く評価されます。Replaceステートメントを使用してPowerShellスクリプトを簡略化する
$filePath = "D:\FileLocation\file_name.csv"
(Get-Content $filePath | out-string).Replace('"', '""') | Set-Content $filePath
(Get-Content $filePath | out-string).Replace('|~|', '"') | Set-Content $filePath
(Get-Content $filePath | out-string).Replace('|@|', ',') | Set-Content $filePath
はそんなにありがとう-replace演算子を使用することができ、それは完璧です!私もメモリ問題にぶつかっていました。 –
['Get-Content'](https://docs.microsoft.com/powershell/module/microsoft.powershell.management/get-content?view=powershell-5.1)には' -ReadCount'パラメータがあります。一度に多くのコンテンツ行がパイプラインを通じて送信されます。 * "このパラメータは表示される内容を変更するものではなく、内容を表示するのにかかる時間に影響しますReadCountの値が増加すると、最初の行を返すのにかかる時間は増加しますが、これは、非常に大きなアイテムで知覚可能な違いを生むことができます。とにかく、ストリーミングはまだまだ高速です... – iRon
@ Shadowzee一度に1行ではなく、バッチでコードを調整する方法を知っていますか? –