كيفية تكرار محتوى ملف نصي في بوويرشيل

18 ديسمبر 2021 43837 الآراء PowerShell ForEach بناء الجملة

إذا كان لديك ملف نصي يحتوي على بيانات ترغب في استخدامها ، فيمكنك استخدام PowerShell الحصول على المحتوى لسرد محتويات الملف. ثم استخدم حلقة PowerShellForEach للتكرار خلال ملف سطرًا بسطر.

يمكنك أيضًا استخدام ForEach-Object Cmdlet للتكرار خلال محتوى الملف المدرج بامتداد الحصول على المحتوى يأمر.

أخيرًا ، هناك ملف للجميع طريقة في إخراج الحصول على المحتوى يأمر. يمكنك أيضًا استخدام ForEach طريقة لتكرار محتوى ملف نصي.

تصفح مواضيع المنشور

كيفية استخدام Get-Content لسرد محتوى الملف

كيفية استخدام Get-Content لسرد محتوى الملف

قبل أن تتمكن من تكرار محتوى ملف نصي باستخدام PowerShell للجميع ، يجب عليك سرد المحتوى بامتداد الحصول على المحتوى يأمر.

الصيغة العامة لملف الحصول على المحتوى الأمر ...

Get-Content -Path 

ال الحصول على المحتوى يقرأ الأمر محتوى ملف نصي سطراً بسطر. ثم تقوم بإرجاع مجموعة من الكائنات.

علاوة على ذلك ، يمثل الكائن في مجموعة الكائنات سطرًا من المحتوى في الملف النصي. هذه النقطة مهمة لأنها تعني أنه يمكننا الوصول إلى الكائنات الفردية التي يتم إرجاعها بواسطة الحصول على المحتوى يأمر.

هذا ما يمنحنا القدرة على استخدام PowerShell للجميع لتكرار محتوى ملف نصي - سطراً بسطر.

ميزة أخرى مهمة من الحصول على المحتوى الأمر هو أنه يمكنه قراءة عدد محدد من الأسطر من بداية أو نهاية ملف نصي.

لبدء الأمثلة في هذا الدليل ، قم بتشغيل الأمر أدناه:

$files = Get-Content -Path D:PS-Tutorialfile-with-numbers.txt

هذا هو محتوى الملف النصي المستخدم في الأمر. يسرد الأمر محتويات الملف ويحفظه في متغير يسمى الملفات .

كيفية تكرار محتوى ملف نصي في بوويرشيل

أخيرًا ، لتوضيح نقطتي السابقة حول قراءة عدد محدد من الأسطر في بداية الملف أو نهايته - قم بتشغيل الأمر أدناه:

Get-Content -Path D:PS-Tutorialfile-with-numbers.txt -  Head   3

يقرأ الأمر الأسطر الثلاثة الأولى من الملف النصي المحدد. هذا محدد من قبل رأس معامل.

ها هي نتيجة الأمر ...

بدلاً من ذلك ، يمكنك إرجاع آخر خطوط N بامتداد ذيل معلمة الحصول على المحتوى يأمر.

هذا مثال لأمر يُرجع آخر 4 أسطر من الملف ...

Get-Content -Path D:PS-Tutorialfile-with-numbers.txt -  Tail   4

وها هي نتيجة الأمر ...

كيفية تكرار محتوى ملف نصي في بوويرشيل

كيفية استخدام PowerShell ForEach Loop والحصول على المحتوى للتكرار من خلال ملف

كيفية استخدام PowerShell ForEach Loop والحصول على المحتوى للتكرار من خلال ملف

في مقدمتي لهذا الدليل ، ذكرت أن الخطوة الأولى لتكرار محتوى ملف نصي باستخدام PowerShell هي سرد ​​محتواه.

ذكرت أيضًا أنه بعد إدراج محتوى ملف نصي بامتداد الحصول على المحتوى الأمر ، يمكنك استخدام بوويرشيل للجميع لتكرار محتوى الملف النصي.

أخيرًا ، ذكرت أنه يمكنك تكرار ملف نصي باستخدام PowerShell للجميع عقدة، للجميع -Object Cmdlet ، أو ال للجميع طريقة .

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

$files = Get-Content -Path D:PS-Tutorialfile-with-numbers.txt

في هذا القسم ، سوف أعلمك بناء جملة للجميع عقدة. ثم سأريكم مثالا على Powershell ForEach $ ملف في ملفات $ - في الأساس ، باستخدام للجميع حلقة لتكرار الملفات المخزنة في ملف الملفات عامل.

فلنبدأ!

بناء جملة PowerShell ForEach Loop

بناء جملة PowerShell ForEach Loop هو ...

ForEach ($file in $files) { }

في بناء الجملة ، ملفات $ يمثل متغيرًا بقائمة من العناصر. في هذا المثال ، فإن ملف ملفات $ المتغير هو إخراج الحصول على المحتوى الأمر الموضح أدناه ...

$files = Get-Content -Path D:PS-Tutorialfile-with-numbers.txt

العودة إلى صيغة PowerShell ForEach Loop ، المتغير ملف $ يمثل كل عنصر محفوظ في ملفات $ عامل.

علاوة على ذلك ، في كل مرة تمر فيها ForEach Loop بدورة ، فإنها تحفظ واحدة من ملفات $ متغير في الزمن ملف $ عامل. بعد ذلك ، يستخدم هذا المتغير المحفوظ مؤقتًا في قوس الأوامر {} ، في ForEach.

Powershell ForEach $ ملف في ملفات $ مثال

في القسم الفرعي الأخير ، أوضحت لك بنية ForEach Loop على النحو التالي ...

ForEach ($file in $files) { }

أوضحت أيضًا أنه في كل دورة من حلقة Powershell ForEach ، فإنه يحفظ أحد الكائنات المحفوظة في ملفات $ متغير في متغير زمني يسمى ملف $ .

في هذا القسم ، سأستخدم هذا المبدأ لتكرار محتوى الملف النصي المحفوظ في ملفات $ عامل. بعد ذلك ، في جزء الأمر من حلقة ForEach ، سأستخدم ملحق عنصر جديد أمر لإنشاء مجلد بالعناصر المحفوظة في المتغير الزمني ، ملف $ .

هذا هو الأمر الذي يؤدي المهمة ...

$files = Get-Content -Path D:PS-Tutorialfile-with-numbers.txt ForEach ($file in $files) Out-Null }

قبل أن أقوم بتشغيل الأمر ، إليك لقطة شاشة للمجلد D: PS-Tutorial ForEachEx

لتشغيل البرنامج النصي ، انسخه إلى مستند جديد في PowerShel ISE. بعد ذلك ، قم بتشغيل البرنامج النصي عن طريق النقر فوق الرمز المميز.

بمجرد تشغيل الأمر ، يتم إنشاء المجلدات بتنسيق D: PS-Tutorial ForEachEx :

في حال كنت قد نسيت ، فهذه هي نفس العناصر المدرجة في ملفي النصي الأصلي!

كيفية تكرار محتوى ملف نصي في بوويرشيل

في جوهرها ، قامت حلقة PowerShell ForEach بتكرار محتوى الملف النصي (الذي تم إرجاعه بواسطة ملف الحصول على المحتوى يأمر). ثم استخدم النتائج لإنشاء مجلد جديد ...

كيفية استخدام PowerShell ForEach-Object والحصول على المحتوى للتكرار من خلال ملف

كيفية استخدام PowerShell ForEach-Object والحصول على المحتوى للتكرار من خلال ملف

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

في هذا القسم ، سأوضح لك كيفية استخدام ForEach-Object Cmdlet لأداء نفس المهمة. لكن أولاً ، لنبدأ ببناء جملة ForEach-Object Command.

بناء جملة PowerShell ForEach-Object Command

لأغراض عملية ، فإن بناء جملة أمر PowerShell ForEach-Object هو ...

 | ForEach-Object { }

يأخذ PowerShell ForEach-Object قيم الكائنات من خط أنابيب ويقوم بتشغيل الأمر المحدد في كتلة الأوامر {} من ForEach-Object.

على عكس PowerShell للجميع حلقة حيث ، في كل دورة ، يتم حفظ كائن في متغير زمني محدد - في PowerShell لكل كائن ، يتم حفظ الكائن في كائن تلقائي مؤقت في متغير خط الأنابيب الحالي ، $ _.

أخيرًا ، بوويرشيل لكل كائن يستخدم المتغير التلقائي ، $ _ كمدخلات لتشغيل الأمر في كتلة الأمر {}.

المزيد في القسم الفرعي التالي ...

Powershell ForEach-Object $ _ في ملفات $ مثال

في هذا المثال ، سأستخدم محتوى الملف المحفوظ في ملف ملفات $ متغير ، لإنشاء المجلدات. المثال مشابه لما فعلناه في للجميع قسم حلقة.

ومع ذلك ، بدلا من استخدام للجميع حلقة ، سوف نستخدم لكل كائن كمدليت.

قبل المتابعة ، دعنا نلقي نظرة على لقطة الشاشة للملف النصي الأصلي.

أيضًا ، هذا هو البرنامج النصي الذي حفظ محتوى الملف في ملف ملفات $ عامل.

$files = Get-Content -Path D:PS-Tutorialfile-with-numbers.txt

الآن بعد أن قمنا بتحديث أذهاننا بشأن الملف النصي الأصلي ، دعنا نرى كيفية استخدام الملف في PowerShell لكل كائن يأمر.

إليك البرنامج النصي الذي ينشئ مجلدات بمحتوى الملف النصي:

$files = Get-Content -Path D:PS-Tutorialfile-with-numbers.txt $files | ForEach-Object New-Item -Name $_ -Path 'D:PS-TutorialForEach-ObjectEx' -ItemType 'directory' 
في هذا البرنامج النصي ، أريد إنشاء المجلدات في مجلد مختلف ، D: PS-Tutorial ForEach-ObjectEx . للتأكد من أن المجلد فارغ قبل تشغيل البرنامج النصي ، ها هي لقطة الشاشة ... كيفية استخدام PowerShell ForEach-Object والحصول على المحتوى للتكرار من خلال ملف

لتشغيل البرنامج النصي ، انسخه إلى PowerShell ISE ، وقم بتشغيله.

بعد تشغيل البرنامج النصي ، يتم الآن إنشاء مجلدات جديدة (بأسماء الملفات في الملف النصي) بتنسيق D: PS-Tutorial ForEach-ObjectEx .

كيفية استخدام طريقة PowerShell ForEach () والحصول على المحتوى للتكرار من خلال ملف

كيفية استخدام طريقة PowerShell ForEach () والحصول على المحتوى للتكرار من خلال ملف

كيفية استخدام طريقة PowerShell ForEach () والحصول على المحتوى للتكرار من خلال ملف

لقد غطى هذا الدليل حتى الآن كيفية سرد محتوى ملف نصي باستخدام أمر Get-Content. لقد تناولت أيضًا كيفية تكرار محتوى ملف نصي باستخدام حلقة PowerShell ForEach و ForEach-Object Cdlet.

في هذا القسم ، ستتعلم كيفية تكرار محتوى ملف نصي باستخدام طريقة PowerShell ForEach. كما هو الحال مع الأقسام الأخرى ، سأبدأ هذا القسم ببنية طريقة PowerShell ForEach.

بناء جملة PowerShell ForEach () طريقة يأمر

بناء جملة أمر أسلوب PowerShell ForEach () هو ...

.ForEach( { } )

مثل كل بوويرشيل طرق ، للوصول إلى ForEach طريقة ، أدخل نقطة بعد الكائن ، متبوعة بالكلمة للجميع .

بعد ذلك للجميع ، أدخل قوس فتح ، (. بعد ذلك ، أدخل كتلة أوامر {} - يتم تنفيذ أوامرك داخل هذه الكتلة.

أخيرًا ، أغلق ForEach طريقة كتلة مع قوس إغلاق ،).

مثل أمر ForEach-Object ، فإن ForEach طريقة يستخدم الكائن التلقائي المؤقت في متغير خط الأنابيب الحالي ، $ _.

في القسم الفرعي التالي ، سترى كيفية استخدام ForEach طريقة .

Powershell ForEach () $ _ في ملفات $ مثال

يصل البرنامج النصي في هذا القسم إلى ملف للجميع طريقة في ال ملفات $ متغير - المتغير الذي تم إنشاؤه باستخدام هذا الأمر ...

$files = Get-Content -Path D:PS-Tutorialfile-with-numbers.txt

هنا هو النص الذي يستخدم للجميع طريقة لتكرار محتوى الملف النصي المحفوظ بتنسيق ملفات $ عامل. بعد ذلك ، يُنشئ مجلدًا مع كل عنصر.

$files = Get-Content -Path D:PS-Tutorialfile-with-numbers.txt $files.ForEach( Out-Null )

في هذا المثال ، سأُنشئ المجلدات في المسار ، D: PS-Tutorial ForEachMethodEx . مرة أخرى ، للتأكد من أن المجلد فارغ قبل تشغيل البرنامج النصي أعلاه ، إليك لقطة شاشة للمجلد ...

مثل البرنامجين الآخرين ، لتشغيل هذا البرنامج النصي ، انسخه إلى PowerShell ISE.

بمجرد تشغيل البرنامج النصي ، قام بإنشاء المجلدات باستخدام المعلومات من الملف النصي.

هذا هو! نسختنا المحدثة من كيفية تكرار محتوى ملف نصي في Powershell.

لقد عثرت على هذا الدليل لأنك بحثت عن foreach في ملف بوويرشيل أو متغيره. آمل أن أكون قد تمكنت من الإجابة على سؤالك.

إذا أجبت على سؤالك ، تفضل بالتصويت نعم إلى هل كان هذا المنشور سؤالًا مفيدًا أدناه.

بدلاً من ذلك ، يمكنك طرح سؤال أو ترك تعليق أو تقديم المزيد من التعليقات باستخدام نموذج 'ترك الرد' الموجود في نهاية هذه الصفحة.

أخيرًا ، لمزيد من مناطق S PowerShell tech ، تفضل بزيارة صفحة دليل Windows PowerShell How-To. قد تجد أيضًا صفحة العمل من الصفحة الرئيسية الخاصة بنا مفيدة جدًا.

تمت إعادة كتابة هذه المقالة بالكامل وتحديثها بأمثلة جديدة.

المراجع وقراءات إضافية

  1. الحصول على المحتوى
  2. لكل كائن
  3. about_Foreach
  4. PowerShell ForEach: بناء الجملة والمعلمات والأمثلة
  5. 18 أوامر Powershell الأكثر فائدة لمسؤولي Windows