يحتاج إلى معرفة كيفية استخدام PowerShell لقراءة ملف نصي واستبدال النص؟ هذا ما نسميه ملف PowerShell Read-Text.
لا داعي للبحث بعيدًا! هذه التدوينة في المدونة مخصصة لك. بحلول نهاية التدوينة، سأريك وظيفة بنيتها لتسهيل حياتك كثيرًا.
استبدال النص في ملف بـ PowerShell هو عملية مكونة من ثلاث خطوات.
- قراءة الملف
- البحث عن السلسلة واستبدالها
- كتابة التغييرات إلى الملف.
قراءة الملف
يجب عليك أولاً قراءة الملف. دعونا نقوم أولاً بإنشاء واحد باستخدام cmdlet Set-Content
حتى نمتلك ملفًا للعمل به.
لقراءة هذا الملف، يمكنك استخدام الأمر Get-Content
. يمكنك قراءة الملف عن طريق توفير مسار ملف النص لمعلمة Path
كما هو موضح أدناه.
البحث عن السلسلة واستبدالها
الآن بعد أن لدينا محتوى الملف في الذاكرة كنص، نحتاج إلى البحث واستبدال السلسلة. أحد الطرق لفعل ذلك هو استخدام مشغل -replace
. يقوم هذا المشغل PowerShell بالبحث عن سلسلة واستبدالها بأخرى.
باستخدام محتوى الملف الذي تمثله الأمثلة، يمكننا توفير سلسلة البحث foo مع سلسلة الاستبدال bar مما يجعل محتوى الملف foo foo baz الآن.
الكتابة إلى الملف
الآن بعد حفظ محتوى الملف الجديد في $newContent
، يمكننا الآن كتابة هذا المحتوى الجديد إلى الملف. أحد الطرق للقيام بذلك هو استخدام أمر Set-Content
.
أمر Set-Content
يقوم بإستبدال جميع محتويات الملف بقيمة جديدة.
كلما قرأت الملف C:\file.txt بواسطة Get-Content
سترى أنه يحتوي الآن على المحتوى الجديد.
التعامل مع مقابض الملفات المفتوحة
الخطوات التي مررت بها سابقًا تعمل… في معظم الأحيان. ومع ذلك، ستجد في العالم الحقيقي أنه لا يحدث دائمًا هكذا.
ستجد أنه في بعض الأحيان يتعين عليك التعامل مع ملفات مفتوحة في PowerShell نفسه. وهذا يمنعك من كتابة المحتوى الجديد إلى الملف.
لحل هذه المشكلة بفتح الملف، قمت بإنشاء سير عمل بسيط يتيح لك إنشاء ملف نص مؤقت على القرص أولاً بالمحتوى الجديد، ومن ثم إزالة الملف الأصلي وإعادة تسمية الملف المؤقت.
فيما يلي مثال على كيفية عمله:
أدناه مثال على وظيفة بنيتها تسمى Find-InTextFile
والتي تستخدم هذا النهج بالإضافة إلى القدرة على البحث (وليس الاستبدال) عن نص في ملف.
تستخدم هذه الوظيفة أيضًا بناء تعبيرات القواعد النظمية الأقوى للبحث عن سلاسل أيضًا. ستجد أن تعبيرات القواعد النظمية تسمح لك بالبحث بمرونة أكبر باستخدام أحرف خاصة مثل الأقواس والأحرف الخاصة وأكثر من ذلك.
يمكنك أيضًا أن ترى أدناه أنني استخدم حلقة foreach لمعالجة ملفات متعددة في وقت واحد. يكون ذلك مفيدًا إذا كان لديك العديد من الملفات لمعالجتها.
الموارد
لمزيد من المعلومات حول أمر Set-Content
، تحقق من Set-Content: الطريقة في PowerShell للكتابة إلى ملف أو الطريقة البديلة لكتابة المحتويات إلى ملف، أمر Out-File
.
Source:
https://adamtheautomator.com/powershell-read-text-file/