דף הבית » איך ל » החלף טקסט ב טקסט רגיל קבצים משורת הפקודה

    החלף טקסט ב טקסט רגיל קבצים משורת הפקודה

    פונקציה שימושית מאוד אשר חסר מספריית Windows של כלי שורת הפקודה היא היכולת להחליף טקסט בקבצי טקסט רגיל. פונקציה כזו יכולה לשמש למגוון של משימות מעשיות אשר מנהל מערכת רבים לבצע, כגון:

    • עדכון קבצי תצורה / INI כדי להחליף נתיבי UNC.
    • מידע על עדכון המוני של משתמשים המאוחסן בקבצי INI בשרת Terminal / Citrix.
    • השתמש בשילוב עם סקריפטים לפריסת נתונים 'תבניות' ולאחר מכן להחיל ערכים על הקבצים המועתקים.

    הפתרון שלנו הוא VBScript אשר ממשקים עם הפונקציה החלף Visual Basic. על ידי הצבת סקריפט זה במיקום במשתנה PathH של Windows, כעת יש לך פונקציונליות זו לרשותך.

    שימושים

    פעם אחת על המערכת שלך, אתה יכול לקרוא את התסריט פשוט באמצעות הפקודה ReplaceText. דוגמאות אחדות ימחישו דרכים שבהן תוכל להשתמש:

    החלף את המילה "null" עם "n / a" בקובץ C: DataValues.csv:

    ReplaceText "C: DataValues.csv" null n / a

    סרוק את כל קבצי INI בתיקייה C: משתמשים (+ ספריות משנה) המחליפות את כל המופעים של "Server = Old" עם "Server = New" באמצעות חיפוש רגיש למקרה:

    / C / C "C / C: משתמשים" / M * .ini / S / C "Cmd / C ReplaceText שרת @path = שרת ישן = חדש / אני"

    סרוק את כל קובצי ה- CFG בפרופיל המשתמש הנוכחי במקום "p @ ssw0rd" עם "PA $$ woRd" באמצעות חיפוש רגיש למקרה:

    קבצים /% "UserProfile%" / M * .cfg / S / C "Cmd / C ReplaceText @ path p @ ssw0rd PA $$ woRd"

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

    התסריט

    'החלף טקסט
    "נכתב על ידי: ג 'ייסון Faulkner
    'SysadminGeek.com

    'סקריפט זה צריך להיות ממוקם בתיקייה שצוין משתנה PATH של המערכת שלך.

    'שימוש (WScript):
    'ReplaceText FileName OldText NewText [/ I]

    '/ I (אופציונלי) - התאמת טקסט אינה תלויית רישיות

    הגדר oArgs = WScript.Arguments

    intCaseSensitive = 0
    עבור i = 3 ל- oArgs.Count-1
    אם UCase (oArgs (i)) = "/ I" אז intCaseSensitive = 1
    הבא

    הגדר את oFSO = CreateObject ("Scripting.FileSystemObject")

    אם לא oFSO.FileExists (oArgs (0)) לאחר מכן
    WScript.Echo "הקובץ שצוין אינו קיים".
    אחר
    הגדר oFile = oFSO.OpenTextFile (oArgs (0), 1)
    strText = oFile.ReadAll
    oFile.Close

    strText = החלף (strText, oArgs (1), oArgs (2), 1, -1, intCaseSensitive)

    הגדר oFile = oFSO.OpenTextFile (oArgs (0), 2)
    הסתר
    oFile.Close
    סיום אם

    הערות נוספות

    כברירת מחדל, Windows משתמש ב- WScript כדי לבצע קובצי VBScript (VBS). הבעיה היחידה שיכולה לגרום לכך היא שכל השגיאות ו / או ההודעות מהסקריפט יופיעו כתיבות קופצות. עבור כלי שורת פקודה, מומלץ להציג את ההודעות במסוף. ישנן כמה דרכים אתה יכול להשיג זאת.

    שנה את מטפל ברירת המחדל של קובצי VBScript ל- CScript על-ידי הפעלת פקודה זו משורת הפקודה (עם הרשאות מנהל):

    CScript // H: CScript

    הפעל את סקריפט ReplaceText במפורש באמצעות הפקודה CScript:

    CScript "C: PathToReplaceText.vbs" // B FileName OldText NewText [/ I]

    במקרה מיוחד, ביצוע ReplaceText מתסריט אצווה בדרך כלל מרמז על CScript כמנוע המשמש ללא קשר למפעיל ברירת המחדל. אתה בהחלט רוצה לבדוק את זה אף לפני להסתמך על פונקציונליות זו.

    הורד סקריפט ReplaceText מ - SysadminGeek.com