Вот сценарий PowerShell, я использую, чтобы добавить «segment99» в начале всех текстовых файлов (один за другим) в пределах папки:OutOfMemoryException при запуске мой PowerShell сценарий
Set Environmental Variables:
$PathData = '<<ESB_Data_Share_HSH>>\RwdPnP'
Go to each text file in the specified folder and add header to the file:
Get-ChildItem $PathData -filter 'test_export.txt'|%{
$content = '"segment99" ' + [io.file]::ReadAllText($_.FullName)
[io.file]::WriteAllText(($_.FullName -replace '\.txt$','_99.txt'),$content)
}
Это дает мне следующая ошибка:
Error: Exception calling "ReadAllText" with "1" argument(s): "Exception of type 'Syste
Error: m.OutOfMemoryException' was thrown."
Error: At D:\apps\MVPSI\JAMS\Agent\Temp\JAMSTemp13142.ps1:17 char:51
Error: + $content = '"segment99" ' + [io.file]::ReadAllText <<<< ($_.FullName)
Error: + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
Error: + FullyQualifiedErrorId : DotNetMethodException
Error:
Я запускаю этот код в папке с 20 файлами, каждая по 2 ГБ.
Как это исправить?
Вы попробовали? Он делает что-то, но не то, что нужно ... –
@RomanKuzmin Я забыл кодировку в командлете out-file. Спасибо, что поймали. Протестировано в большом файле (> 2 ГБ) и работает достаточно хорошо (<1 мин.) –
Чтобы быть ясным, кодировка файла заголовка должна соответствовать кодировке файла test_export.txt. –