Ich versuche, ein Wort zu finden und zu ersetzen. Ich habe 2 Probleme, die ich bekomme Fehler Exception calling "Execute" with "15" argument(s): "String parameter too long."
Ich nehme an, weil mein Ersatztext über 255 Zeichen ist. Kann mir jemand mit einer alternativen Methode helfen, das Skript dazu zu bringen, über 255 Zeichen zu ersetzen? Hier ist der CodeString zu lang Fehler, Text in Powershell suchen und ersetzen
$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"
Jede Beratung sehr geschätzt wird.
Ja, es gibt ein Limit von 255 Buchstaben über das Objektmodell. –
Zum zweiten Thema - das sollte wirklich in einer separaten Frage sein, da die beiden Dinge völlig unabhängig sind. Sie zeigen uns nichts von der von Ihnen verwendeten Word.Application-Verwaltung, was es unmöglich macht zu sagen, was das Problem sein könnte, aber ... Haben Sie den Application.Quit() -Befehl gesendet? Und geben Sie alle Word-bezogenen Objekte korrekt frei, so dass sie keine Zeiger halten? –
Ich habe die Frage bearbeitet, um eine Frage zu unterstützen, listet die Word.application-Verwaltung auf. Mein Hauptproblem ist es, über die 255 Zeichen zu gehen. – ShanayL