الصفحة الرئيسية » howto » استبدال النص في ملفات نص عادي من سطر الأوامر

    استبدال النص في ملفات نص عادي من سطر الأوامر

    هناك وظيفة مفيدة جدًا مفقودة من مكتبة Windows لأدوات سطر الأوامر وهي القدرة على استبدال النص في ملفات نصية عادية. يمكن استخدام وظيفة كهذه لمجموعة متنوعة من المهام العملية التي يؤديها العديد من مسؤولي النظام ، مثل:

    • تحديث ملفات التكوين / INI لاستبدال مسارات UNC.
    • معلومات المستخدم التحديث الشامل المخزنة في ملفات INI على ملقم المحطة الطرفية / سيتريكس.
    • استخدم بالاقتران مع البرامج النصية لنشر البيانات "templated" ثم تطبيق القيم على الملفات المنسوخة.

    لدينا الحل هو VBScript التي تتفاعل مع وظيفة Visual Basic Replace. من خلال وضع هذا البرنامج النصي في موقع في متغير PATH الخاص بـ Windows ، فلديك الآن هذه الوظيفة متوفرة تحت تصرفك.

    الاستخدامات

    مرة واحدة على النظام الخاص بك ، يمكنك استدعاء البرنامج النصي ببساطة باستخدام الأمر ReplaceText. ستوضح بعض الأمثلة الطرق التي يمكنك اتباعها:

    استبدل كلمة "null" ب "n / a" في الملف C: DataValues.csv:

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

    مسح كافة ملفات INI في المجلد C: Users (+ الدلائل الفرعية) استبدال كافة تكرارات "Server = Old" مع "Server = New" باستخدام بحث غير حساس لحالة الأحرف:

    FORFILES / P "C: Users" / M * .ini / S / C "Cmd / C ReplaceTextpath Server = خادم قديم = جديد / أنا"

    مسح جميع ملفات CFG في الملف الشخصي للمستخدم الحالي بدلاً من "p @ ssw0rd" مع "PA $$ woRd" باستخدام بحث حساس لحالة الأحرف:

    FORFILES / P “٪ UserProfile٪” / M * .cfg / S / C “Cmd / C ReplaceText @ path p @ ssw0rd PA $$ woRd”

    كما ترى أدناه ، فإن النص البرمجي بسيط للغاية ويمكن تعديله بسهولة لاستيعاب أي مواقف خاصة قد تكون لديك. بدلاً من ذلك ، قد ترغب في إنشاء نسخ من البرنامج النصي الذي يرمز إلى قيم معينة بحيث يمكنك تنفيذ الأمر بنقرة مزدوجة و / أو السماح لك بتوزيعه بسهولة على الآخرين.

    النص

    استبدال النص
    "تأليف: جايسون فولكنر
    "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.WriteLine strText
    oFile.Close
    إنهاء إذا

    ملاحظات إضافية

    بشكل افتراضي ، يستخدم Windows WScript لتنفيذ ملفات VBScript (VBS). المشكلة الوحيدة التي يمكن أن يسببها ذلك هي أن أي أخطاء و / أو رسائل من البرنامج النصي ستظهر كمربعات منبثقة. بالنسبة لأداة سطر الأوامر ، من الأفضل عرض هذه الرسائل في وحدة التحكم. هناك طريقتان يمكنك تحقيق ذلك.

    قم بتغيير المعالج الافتراضي لملفات VBScript إلى CScript عن طريق تشغيل هذا الأمر من موجه الأوامر (مع حقوق المسؤول):

    CScript // H: CScript

    قم بتشغيل البرنامج النصي ReplaceText بشكل صريح باستخدام الأمر CScript:

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

    كحالة خاصة ، يعني تنفيذ ReplaceText من البرنامج النصي الدفعي عادة CScript كمحرك مستخدم بغض النظر عن المعالج الافتراضي. سوف تحتاج بالتأكيد إلى اختبار هذا على الرغم من قبل الاعتماد على هذه الوظيفة.

    قم بتنزيل Script ReplaceText من SysadminGeek.com