הספק שלך נרכש, ו‑“ACME Corp” הוא כעת “Globex Ltd” בכל חוזה, לוח זמנים, תקציב ומצגת שקופיות שמזכירים אותו. עם שרת GroupDocs.Editor MCP פועל מקומית, Claude Desktop, Cursor או Copilot מבצעים זאת באצווה: עבור כל קובץ בתיקייה הם קוראים ל‑replace_text, שומרים על העיצוב, מדווחים כמה מופעים שונו, ולא כותבים דבר עבור הקבצים שמעולם לא הזכירו את השם הישן. שום דבר לא מועלה, ואין קובץ מקורי שנכתב עליו מחדש:

שנה את ACME Corp ל‑Globex Ltd בכל מסמך בתיקיית החוזים, שמור על העיצוב, ותן לי ספירה לכל קובץ.

הגרסה צעד‑אחר‑צעד נמצאת בתיעוד: How to find and replace text across a folder of documents without breaking the formatting.

למה זה עבודה לכלי ולא למודל?

כי התוצאה חייבת להיות ניתנת לבדיקה. ארבעים מסמכים זה יותר מדי כדי להשוות בעין, ומודל ש״עדכן את כל החוזים״ לא נותן לך דבר לבדיקה. כלי חיפוש‑והחלפה נותן לך מספר לכל קובץ. המספרים הם מסלול הביקורת: אתה יודע אילו קבצים השתנו, בכמה, ואילו לא נדרשו לשינוי.

זה גם צריך להיות משעמם בצורה הנכונה. שם הצד המודגש נשאר מודגש, טבלת העמלות שומרת על הרשת שלה, הכותרות שומרות על הסגנון שלהן. המודל אף פעם לא מקליד מחדש את המסמך: המנוע פותח אותו, מחליף את המילים ויוצר עותק. חיסרון אחד בשרת 26.10.0: העותק נכתב ממודל עריכת ה‑HTML של המנוע, ו‑footer של Word לא מועבר דרכו. חוזה שמזכיר את הספק בתחתית העמוד (footer) צריך את המסלול המעגלי של HTML ממודף במקום זאת; the FAQ מפרט מה ש‑Word שומר.

מה הסוכן רואה

תועד מ‑GroupDocs.Editor.Mcp 26.10.0 על סט סינתטי קטן: הסכם שירותים, הסכם סודיות (NDA), מכתב קבלת פנים, תקציב בשלושה גיליונות, ומצגת סקירה של שלוש שקופיות.

-> replace_text {"file":{"filePath":"contracts/msa-northwind.docx"},
     "find":"ACME Corp","replace":"Globex Ltd","wholeWord":true}
<- Replaced 6 occurrence(s) of 'ACME Corp' in 'msa-northwind.docx'
   Saved to: …/msa-northwind_edited.docx

-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"}, ...}
<- Replaced 1 occurrence(s) of 'ACME Corp' in 'nda-northwind.docx'

-> replace_text {"file":{"filePath":"contracts/welcome-letter.docx"}, ...}
<- Text replacement found no matches for 'ACME Corp' in
   'welcome-letter.docx'. No file was written.

-> replace_text {"file":{"filePath":"budget.xlsx"}, ..., "worksheet":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in worksheet 1 of 3 of
   'budget.xlsx'

-> replace_text {"file":{"filePath":"review.pptx"}, ..., "slide":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in slide 1 of 3 of
   'review.pptx'

הדוח של הסוכן נכתב מעצמו: שש במסמך ההסכם, אחד ב‑NDA, אף אחד במכתב הקבלה, אחד בסיכום התקציב, אחד בשקופית הראשונה.

הלולאה

contracts/ + budget.xlsx + review.pptx
   |
   +-- for each file:
   |      replace_text {"find":"ACME Corp","replace":"Globex Ltd",
   |                    "wholeWord":true}   (+ "worksheet"/"slide")
   |         -> "Replaced N occurrence(s) ..."  -> <name>_edited.<ext>
   |         -> "found no matches ... No file was written."
   |
   '-- report: file -> count; files with 0 listed separately

שתי הרגלים עושים את הלולאה אמינה. השתמש ב‑wholeWord: true לשמות, כך ש‑“ACME Corp” לא יתאים בתוך “ACME Corporation Holdings”. ובקש מהסוכן לרשום את הקבצים עם אפס התאמות, כי אפס בקובץ שציפית לשנות הוא הדבר היחיד שמצריך בדיקה נוספת.

בדיקת האצווה לפני שאתה מחליף משהו

העותקים הערוכים יושבים לצד המקוריים עד שתחליט אחרת, וזה הרגע לבדיקה. שלושה בדיקות זולות תופסות כמעט כל בעיה. השווה את הספירות לכל קובץ עם מה שציפית: הסכם שמזכיר את הספק בכל עמוד לא צריך לדווח על מופע אחד. אל תסתמך על הרצת ההחלפה שוב: ביטוי שמפוצל על פני עיצוב יפספס גם בפעם השנייה, ו‑“found no matches” ייראה כמו שאין בעיה. בקש מהסוכן להריץ extract_html על כל עותק ערוך במקום זאת; תצוגת הטקסט הפשוט שלו מאחדת את ריצות העיצוב, ולכן “ACME Corp” שנותר יופיע שם. כתיבויות שונות (“Acme Corp.” עם נקודה, “ACME Corporation”) ראויות לריצה נפרדת עם matchCase: false או ביטוי רגולרי. ופתח קובץ ערוך אחד מכל סוג, חוזה, חוברת עבודה ומצגת, כדי לאשר שהעיצוב, וה‑footer, נשמרו. רק אז העבר את קבצי ה‑_edited על המקוריים, או תן למערכת המסמכים שלך לגרסאות אותם.

תבניות, רישיות ועיצוב באותו קריאה

שינוי השם הוא המקרה הנפוץ, אך אותו כלי מכסה את שאר משפחת “הפיכת הניסוח לעקבי”. באותו ריצת מבחן:

-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
     "find":"v2\\.3\\b","replace":"v2.4","regex":true,
     "outputName":"nda-northwind-v2.4.docx"}
<- Replaced 1 occurrence(s) of 'v2\.3\b' in 'nda-northwind.docx'

-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
     "find":"acme corp","replace":"Globex Ltd","matchCase":false,
     "format":"pdf"}
<- Replaced 1 occurrence(s) of 'acme corp' in 'nda-northwind.docx'
   Saved to: …/nda-northwind_edited.pdf

regex: true מקבל ביטוי רגולרי של .NET, שהוא הדרך לשינוי גרסה או שינוי פורמט תאריך דרך תיקייה. matchCase: false תופס רישיות לא עקבית. format: "pdf" ערוך וממיר בצעד אחד, עבור העותק שעובר לצד השני.

פסקה צדדית לסוכני קוד

אותו תבנית עובדת במאגר. הודעות שחרור ב‑DOCX ומפרטים ב‑XLSX אינם נראים ל‑sed; Claude Code עם השרת הזה יכול להעלות את מחרוזת הגרסה בשניהם כחלק ממשימת השחרור. שים את הכלל בהוראות הפרויקט כדי שהסוכן ישתמש בכלי במקום לנסות לחלץ קבצי Office:

To change wording in .docx/.xlsx/.pptx/.pdf files in this repo, use the
groupdocs-editor MCP server's replace_text (wholeWord for names, regex for
versions). Report the count per file. Never rewrite an Office file by hand.

מגבלות כנות

  • התאמה מתרחשת בתוך ריצת עיצוב אחת. בהסכם שלנו, “ACME Corp” השביעי, עם “ACME” באיטאליק, לא הוחלף, והספירה של שש הראתה זאת. ביטויים שמפוצלים על פני סגנונות צריכים את המסלול המעגלי של HTML.
  • כל תוצאה נופלת בתיקיית השורש של תיקיית הפלט בשם <name>_edited.<ext>, גם כאשר המקור היה בתיקייה משנה. שום דבר לא נכתב מחדש: שם שכבר תפוס מקבל מספר (msa-northwind_edited (1).docx), ולכן יש לספק outputName כאשר שמות עלולים להתנגש.
  • בשרת 26.10.0 העותק הערוך של מסמך Word מאבד את ה‑footer שלו, ובקרות תוכן משטחות לטקסט פשוט. בדוק מסמכים שנושאים את השם הישן בתחתית העמוד.
  • גיליונות אלקטרוניים ומצגות נערכים גיליון או שקופית אחת לכל קריאה. במצב הערכה ניתן לערוך רק את השניים הראשונים, והשרת מודיע על כך: “Evaluation mode edits only the first 2 slides of a presentation; slide 3 is beyond them.”
  • מצב הערכה גם מוסיף שורת באנר לכל פלט, וקובץ PDF ארוך יותר משתי עמודים נדחה.

שאלות נפוצות

האם הוא יכול להחליף טקסט ב‑Word, Excel ו‑PowerPoint באצווה אחת?
כן. הסוכן קורא לאותו כלי לכל קובץ ומוסיף worksheet או slide עבור חוברות עבודה ומצגות.

איך אני יודע אילו קבצים השתנו?
כל קריאה מחזירה את הספירה, וקבצים ללא התאמה לא נכתבים כלל. בקש מהסוכן טבלה לכל קובץ.

האם הקבצים המקוריים יכתבו מחדש?
לא. כל עריכה כותבת קובץ חדש; המקוריים נשארים כפי שהם עד שתחליף אותם בעצמך.

להעמיק יותר