Я пытаюсь найти и заменить на текстовом документе. У меня есть 2 вопроса один я получаю ошибку Exception calling "Execute" with "15" argument(s): "String parameter too long."
Я предполагаю, потому что мой текст замены составляет более 255 символов. Может ли кто-нибудь помочь мне с альтернативным способом заставить скрипт заменить более 255 символов? Вот кодString Too Long Error, Find and Replace Text в Powershell
$Filename=file1.docx
Function OpenWordDoc($Filename)
{
$Word=NEW-Object –comobject Word.Application
Return $Word.documents.open($Filename)
}
[xml]$xmldata = Get-Content "file.xml"
$Doc=OpenWordDoc -Filename "file1.docx"
Function SearchAWord($Document,$findtext,$replacewithtext)
{
$FindReplace=$Document.ActiveWindow.Selection.Find
$matchCase = $false;
$matchWholeWord = $true;
$matchWildCards = $false;
$matchSoundsLike = $false;
$matchAllWordForms = $false;
$forward = $true;
$format = $false;
$matchKashida = $false;
$matchDiacritics = $false;
$matchAlefHamza = $false;
$matchControl = $false;
$read_only = $false;
$visible = $true;
$replace = 2;
$wrap = 1;
$FindReplace.Execute($findText, $matchCase, $matchWholeWord,`
$matchWildCards, $matchSoundsLike, $matchAllWordForms, $forward, $wrap,`
$format, $replaceWithText, $replace, $matchKashida ,$matchDiacritics,`
$matchAlefHamza, $matchControl) | Out-Null
}
Function SaveAsWordDoc($Document,$FileName)
{
$Document.Saveas([REF] $Filename)
$Document.close()
}
$checkcontent = $xmldata.Benchmark.Group.Rule.check.'check-content'
$description = $xmldata.Benchmark.group.rule.description
SearchAWord –Document $Doc -findtext '<Information derived from discussion>' -replacewithtext $description
SearchAWord –Document $Doc -findtext '<Information derived from content>' -replacewithtext $checkcontent
SaveAsWordDoc –document $Doc –Filename "results.docx"
Любые советы оценили.
Да, есть предел 255 символов с помощью объектной модели. –
Что касается второго вопроса - это действительно должно быть в отдельном вопросе, поскольку две вещи абсолютно не связаны. Вы не показываете нам какое-либо из используемого вами управления Word.Application, из-за чего невозможно сказать, в чем проблема, но ... Вы отправили команду Application.Quit()? И правильно ли вы освобождаете все объекты, связанные с Word, чтобы они не «удерживали указатели»? –
Я отредактировал вопрос, чтобы поддержать один вопрос в списке объявлений Word.application management. Моя основная проблема заключается в том, чтобы передать ей 255 символов. – ShanayL