كيفية استخدام بوويرشيل للكتابة إلى ملف نصي

3 يونيو 2021 102357 الآراء

تعلمك منطقة S هذه طرقًا مختلفة لاستخدام PowerShell في الكتابة إلى ملف.





يبدأ الدليل بمناقشة أوامر PowerShell Cmdlets المختلفة المستخدمة لكتابة الإخراج إلى ملف. يغطي القسم خارج الملف و Add-Content و Set-Content Cmdlet مع أمثلة.



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

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



إذا كنت تبحث عن مثال محدد ، فقم بتوسيع استعراض مواضيع المنشور أدناه وانقر فوق الموضوع.



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

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

تُستخدم أوامر PowerShell Cmdlets لكتابة الملفات النصية أو تحديثها

PowerShell Cmdlets لكتابة أو تحديث الملفات النصية

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



كيفية كتابة إخراج PowerShell إلى ملف نصي باستخدام خارج الملف

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



في المثال الأول الخاص بي ، سأدخل نصًا في موجه PowerShell ثم توجيهه إلى خارج الملف .

'This will be written to the text file' | Out-File -FilePath E:
eportsfirst-file.txt
إذا كان الملف غير موجود ، فسيقوم Out-File بإنشائه في المسار المحدد بواسطة مسار الملف معامل.

سيتم تنفيذ الأمر والعودة إلى موجه PowerShell.

كيفية استخدام Out-File في PowerShell للكتابة أو الإلحاق بالملف

هنا هو الملف الذي تم إنشاؤه في المسار المحدد. الصورة الثانية هي محتوى الملف النصي.

كيفية استخدام Out-File في PowerShell للكتابة أو الإلحاق بالملف

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

في هذا المثال الثاني ، سأكتب إخراج Get-Process إلى ملف نصي. هذا هو الأمر:

Get-Process | Out-File -FilePath E:
eportsprocesses.txt

سيقوم الأمر بتنفيذ وإنشاء ملف Operations.txt. يظهر الإخراج في الصورة الثانية أدناه:

كيفية إلحاق إخراج PowerShell بملف نصي موجود باستخدام خارج الملف

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

متابعة من المثال الأول ، سيقوم الأمر أدناه بإلحاق (إضافة) المعلومات قبل خط الأنابيب (|) إلى أسفل الملف ، first-file.txt.

'This will be appended beneath the first line' | Out-File -FilePath E:
eportsfirst-file.txt -Append

يحتوي الملف الآن على سطر ثان ، مع النص سيتم إلحاق هذا أسفل السطر الأول. انظر الصورة أدناه.

كيف تستعمل إضافة محتوى في PowerShell للإلحاق بملف نصي

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

لإلحاق هذا سيتم إلحاقه أسفل السطر الثاني بملفنا الحالي ، first-file.txt ، أدخل هذا الأمر واضغط على Enter.

Add-Content -Path E:
eportsfirst-file.txt -Value 'This will be appended beneath the second line'

سيحتوي الملف الآن على سطر ثالث بالنص سيتم إلحاقه أسفل السطر الثاني. انظر الصورة أدناه:

في المثال الأخير ، سألحق (اكتب) ناتج الحصول على العملية أمر Cmdlet الذي تم إنشاؤه في ملف process.txt خارج الملف مثال.

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

متطلبات نظام محاكي ps3
$Process = Get-Process
Add-Content -Path E:
eportsprocesses.txt -Value $Process

يحفظ الأمر الأول إخراج الحصول على العملية في ال معالجة عامل. يقوم الأمر الثاني بإلحاق الإخراج من المتغير بملف process.txt.

يمكنك استخدام إحدى الطرق المشمولة في منطقة S هذه للكتابة إلى ملف (أو الإلحاق بملف موجود) باستخدام PowerShell!

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

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

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

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

لذلك ، يقوم الأمر أدناه بالكتابة فوق محتوى الملف بمحتوى جديد محدد في ملف قيمة معامل.

Set-Content -Path E:
eportsfirst-file.txt -Value 'This will overwrite everthing in this text file'

ها هو الملف النصي - تم استبدال كل محتوياته السابقة!

ملف نصي PowerShell طرق تستخدم لكتابة ملفات نصية أو تحديثها

كيفية الكتابة إلى ملف نصي باستخدام أساليب ملف نصي بوويرشيل

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

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

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

كيفية البحث عن طرق ملف نصي بوويرشيل

لرؤية قائمة الكل طرق و العاملين متوفر في ملف نصي ، قم بتوجيه إخراج ملف الحصول على المحتوى الأمر ل الحصول على عضو .

هنا أمر عينة….

Get-Content E:
eportsfirst-file.txt | Get-Member | Where-Object {$_.MemberType -eq 'Method'}

يسرد الأمر مجموعة من PowerShell طرق . ومع ذلك ، لغرض هذا الدليل ، أنا مهتم بما يلي طرق :

  • إدراج
  • إزالة
  • يحل محل

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

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

كيفية استخدام بوويرشيل إدراج طريقة لإلحاق سلاسل بملف نصي موجود

البنية العامة لـ PowerShell إدراج الطريقة هي ...

Insert(int startIndex, string value)

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

طريقة واحدة سهلة لتحديد فهرس البداية هو حساب دليل ل قيمة السلسلة التي تريد إدراج نص حولها.

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

للبدء ، أريد حفظ المسار إلى ملفي في متغير. سيؤدي ذلك إلى تسهيل حفظ المحتوى المحدث لاحقًا.

$FilePath = 'E:
eportsfirst-file.txt'

بعد ذلك ، سأستخدم ملف الحصول على المحتوى الأمر لسرد محتوى الملف النصي. ثم احفظ النتيجة في متغير آخر ...

$FileContent = Get-Content $FilePath

قبل الشروع في الخطوة التالية ، اسمحوا لي أن أعيد بناء جملة PowerShell إدراج طريقة…

Insert(int startIndex, string value)

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

في هذا المثال ، أريد إدخال الكلمة ليس قبل الكتابة فوق ...

كيفية استخدام طريقة إدراج PowerShell لإلحاق نص بملف نصي موجود

الخطوة الأولى هي تحديد دليل ل قيمة الكتابة. يقوم الأمر أدناه بالمهمة ...

$FileContent.IndexOf('overwrite')

النتيجة هي 10.

ضع في اعتبارك أن هذا دليل ل من 10 هو بالضبط في بداية الحرف الأول من الكلمة ، الكتابة.

مع وضع ذلك في الاعتبار ، إذا أردت إدخال سلسلة (نص ، أرقام ، أحرف - أي شيء) ، قبل الكتابة فوق ، سأستخدم 10 على أنها فهرس البداية .

علاوة على ذلك ، إذا كنت أرغب في إدخال أي شيء في نهاية السلسلة ، فالكتابة فوقها ، وسأحسب عدد الأحرف من الحرف الأول - في هذه الحالة o - إلى نهاية السلسلة ، والكتابة فوقها - والتي ستكون 18

لاحظ أنه يتم حساب المسافات كأحرف أيضًا.

ولكن لغرض هذا المثال ، أريد إدخال الكلمة ليس قبل الكتابة فوق ...

كيفية استخدام طريقة إدراج PowerShell لإلحاق نص بملف نصي موجود

هذا هو الأمر الذي يفعل هذا السحر ...

$FileContent.Insert(10,'not ')
أضفت مسافة بعد عدم إنشاء مسافة بين عدم والكتابة.

في الأمر ، 10 هل فهرس البداية و ليس يكون قيمة السلسلة . يتبع هذا الأمر بناء جملة أسلوب الإدراج أدناه ...

Insert(int startIndex, string value)

وهنا نتيجة آخر أمر في PowerShell. النتيجة تتضمن الكلمة التي أدخلناها!

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

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

لذلك ، لكتابة إخراج آخر أمر PowerShell إلى نفس الملف النصي ، قم بتشغيل الأمر أدناه ...

$FileContent.Insert(10,'not ') | Set-Content $FilePath

بمجرد تشغيل هذا الأمر الأخير وفتح ملفي النصي ، فإن الكلمة ليست الآن جزءًا من السلاسل في الملف النصي!

كيفية استخدام طريقة إدراج PowerShell لإلحاق نص بملف نصي موجود

كيفية استخدام بوويرشيل إزالة طريقة حذف السلاسل في ملف نصي موجود

عندما قدمت هذا القسم ، ذكرت أنني سأقدم أمثلة مع PowerShell إزالة طريقة. في هذا القسم الفرعي ، ستتعلم كيفية استخدام طريقة PowerShell هذه لحذف سلاسل من ملف نصي.

لنبدأ ببناء جملة إزالة طريقة:

Remove(int startIndex)
Remove(int startIndex, int count)

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

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

بالإضافة إلى ذلك ، بالنسبة إلى بناء الجملة الثاني ، فإن ملف عدد هو عدد الأحرف - من فهرس البداية - تريد إزالته.

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

بالاستمرار من الأمثلة في القسم الفرعي الأخير ، سيحدد الأمر الثالث أدناه دليل ل القيمة:

$File = 'E:
eportsfirst-file.txt' $FileContent = Get-Content $File $FileContent.  IndexOf  ('not')

والنتيجة هي 10 ...

كيفية استخدام طريقة إزالة PowerShell لحذف السلاسل في ملف نصي موجود

بالمضي قدمًا ، لإزالة السلسلة ، لا ، سنستخدم الصيغة الثانية لملف إزالة طريقة.

Remove(int startIndex, int count)

في المثال الخاص بي ، فهرس البداية هو 10. في وقت سابق ، شرحت أن عدد هو عدد الأحرف - من فهرس البداية - تريد إزالته.

لذلك ، نريد إزالة السلسلة ، وليس - وهي 3 أحرف من ملف فهرس البداية . لذلك ، فإن عدد هو 3.

بناءً على هذه المعلومات ، سيزيل الأمر أدناه السلسلة ، وليس من ملفنا النصي ..

$FileContent.Remove(10,3)

ها هي النتيجة ...

إذا نظرت إلى النتيجة عن كثب ، ستلاحظ وجود مسافة مزدوجة بين الإرادة والكتابة. لإزالة إحدى المساحات ، قم بعمل ملف عدد 4 ...

$FileContent.Remove(10,4)

الآن ذهب الفضاء!

كيفية استخدام طريقة إزالة PowerShell لحذف السلاسل في ملف نصي موجود

أخيرًا ، استخدم أمر PowerShell أدناه لكتابة النص المحدث إلى الملف ...

$FileContent.Remove(10,4) | Set-Content $FilePath

بعد تشغيل الأمر ، يتم تحديث الملف بدون السلسلة ، وليس. انظر لقطات الشاشة أدناه ...

كيفية استخدام بوويرشيل يحل محل طريقة لاستبدال سلسلة في ملف نصي

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

في هذا القسم الفرعي الأخير ، ستتعلم كيفية استبدال سلسلة بسلسلة أخرى. كالعادة ، فلنبدأ ببناء جملة يحل محل طريقة:

Replace(string oldValue, string newValue)

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

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

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

بالإضافة إلى ذلك ، يكتب أمر PowerShell الأخير الإخراج المحدث إلى نفس الملف النصي ...

$File = 'E:
eportsfirst-file.txt' $FileContent = Get-Content $File $FileContent.Replace('overwrite','write over') $FileContent.Replace('overwrite','write over') | Set-Content $FilePath

بعد تشغيل الأوامر ، سيتم تحديث الملف النصي. انظر اللقطة في الاسفل…

كيفية استخدام عوامل إعادة توجيه PowerShell للإلحاق بملف نصي

يحتوي Windows PowerShell على مجموعة من ملفات عوامل إعادة التوجيه . يمكنك استخدام اثنين من عوامل إعادة التوجيه هذه للكتابة أو تحديث الملفات النصية في PowerShell.

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

لإنشاء ملف نصي جديد والكتابة إليه ، استخدم عامل إعادة التوجيه>. إذا كنت تستخدم هذا المشغل لكتابة تدفق PowerShell إلى ملف نصي ، فإنه يقوم بالكتابة فوق محتوى الملف النصي.

ومع ذلك ، إذا كنت تريد تحديث ملف نصي دون الكتابة فوق محتواه ، يمكنك استخدام عامل إعادة التوجيه >>.

لتوضيح كيفية عمل هذه العوامل ، قم بتشغيل الأوامر التالية.

'redirect' > E:
eportsRedirectExample.txt
'redirect line 2' >> E:
eportsRedirectExample.txt

يقوم الأمر الأول بإنشاء ملف نصي ، E: Reports RedirectExample.txt . ثم يكتب إعادة التوجيه في ملف نصي.

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

كيفية استخدام عوامل إعادة توجيه PowerShell للإلحاق بملف نصي

أمثلة على الكتابة إلى ملف نصي بوويرشيل

أمثلة على الكتابة إلى ملف نصي بوويرشيل

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

كيفية كتابة إخراج PowerShell إلى ملف نصي والكتابة فوقه

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

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

لإعطاء بعض الأمثلة ، ستحل الأوامر أدناه محل محتوى الملف النصي ، م: تقارير overwrite.txt :

'does out-file overwrite - line 1' | Out-File E:
eportsoverwrite.txt 'does out-file overwrite - line 2' | Set-Content E:
eportsoverwrite.txt 'does out-file overwrite - line 3' > E:
eportsoverwrite.txt

توضح لقطة الشاشة أدناه الأوامر والمحتوى النهائي للملف النصي.

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

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

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

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

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

لإلحاق الجملة هذا يتم إلحاقه بواسطة إضافة محتوى ، إلى الملف النصي المحدد ، وعرض الرسالة على وحدة التحكم ، قم بتشغيل الأمر أدناه:

Add-Content -Path E:
eportsfirst-file.txt -Value 'this is appended by the  Add-Content  ' -PassThru

تُظهر لقطة الشاشة أدناه نتيجة الأمر في PowerShell وإخراج الملف النصي.

كيفية كتابة إخراج PowerShell إلى ملف نصي ووحدة التحكم

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

Set-Content -Path E:
eportsfirst-file.txt -Value 'this overwrites the content of the file - using Set-Content' -PassThru

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

كيفية كتابة إخراج PowerShell إلى ملف نصي بدون سطر جديد

إذا قمت بتشغيل أمر PowerShell هذا ، فبدلاً من كتابة الإخراج إلى نفس السطر في الملف النصي ، فإنه يكتب السلسلتين ، Victor ، و Ashiedu في سطرين ...

'Victor', 'Ashiedu' | Out-File E:
eports
onewline.txt

ومع ذلك ، إذا كان هدفك هو كتابة كلا الجملتين على نفس السطر ، فيجب عليك تضمين امتداد خارج الملف استدعاء معلمة Cmdlet لا .

'Victor', 'Ashiedu' | Out-File E:
eports
onewline.txt -NoNewline

الآن ، يحتوي الملف النصي على كلا الجملتين على نفس السطر! ومع ذلك ، لا توجد مسافة بين السلسلتين - وهو في هذه الحالة الاسم الأول والأخير للشخص.

كيفية كتابة إخراج PowerShell إلى ملف نصي بدون سطر جديد

لتضمين مسافة بين الاسمين ، أضف مسافة قبل السلسلة الثانية ، Ashiedu. الأمر أدناه هو نفس الأمر السابق باستثناء المسافة قبل السلسلة الثانية.

'Victor', ' Ashiedu' | Out-File E:
eports
onewline.txt -NoNewline

ها هو الملف النصي الآن ...

إذا كنت لا تريد الكتابة فوق الملف النصي ، فقم بتضمين ملحق ألحق المعلمة في الأمر الأخير.

كيفية كتابة إخراج PowerShell إلى ملف نصي بترميز UTF 8

ال خارج الملف Cmdlet له معلمة تسمى التشفير . عند كتابة إخراج PowerShell إلى ملف نصي ، يمكنك استخدام هذه المعلمة لتحديد ترميز الملف.

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

ال التشفير تدعم المعلمة UTF8 و ASCII و UTF32 والمزيد. يمكنك تحديد أي من أنواع الترميز.

لذلك ، نظرًا لأن هذا القسم الفرعي يتعلق بكتابة إخراج PowerShell إلى ملف نصي بتشفير UTF8 ، فإليك أمثلة للأوامر التي يمكنها تحقيق ذلك ...

'Victor', 'Ashiedu' | Out-File E:
eportsUTF8.txt -Encoding utf8
Get-Content E:
eports
onewline.txt | Out-File E:
eports
onewlineUTF8.txt -Encoding utf8

يقوم الأمر الأول بكتابة الإخراج إلى ملف نصي بترميز UTF8.

بالإضافة إلى ذلك ، يستورد الأمر الثاني محتوى ملف نصي إلى PowerShell بامتداد الحصول على المحتوى . ثم يكتب نفس المحتويات إلى ملف نصي آخر بترميز UTF8.

كيفية إصلاح PowerShell الكتابة إلى خطأ رفض الوصول إلى الملف

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

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

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

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

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

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

كيفية استخدام بوويرشيل للكتابة إلى ملف نصي للقراءة فقط

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

كيفية استخدام بوويرشيل للكتابة إلى ملف نصي للقراءة فقط

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

'Victor', ' Ashiedu' | Out-File E:
eports
onewline.txt -NoNewline

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

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

'Victor', ' Ashiedu' | Out-File E:
eports
onewline.txt -NoNewline -Force

هذه المرة ، الأمر ناجح ويتم تحديث الملف النصي!

كيفية استخدام بوويرشيل للكتابة إلى ملف نصي للقراءة فقط

كيفية كتابة إخراج PowerShell إلى ملف نصي وإنشاء مجلد إذا لم يكن موجودًا

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

لن يظهر جهاز ipod الخاص بي في iTunes

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

'Victor', ' Ashiedu' | Out-File E:
eports    NoNewline    
onewline.txt -NoNewline -Force

يقوم الأمر بإرجاع رسالة خطأ.

لإصلاح هذه المشكلة ، استخدم الأمر Test-Path للتحقق من وجود المسار. ثم ، إذا لم يكن موجودًا ، فاستخدم عنصر جديد الأمر لإنشائه قبل تشغيل ملف خارج الملف يأمر.

هنا هو البرنامج النصي المحدث. السطر الأخير هو أحدث أمر في هذا الدليل ...

$CheckFilePath = Test-Path E:
eports    NoNewline    
onewline.txt If ($CheckFilePath -eq $False) { New-Item -Path E:
eportsNoNewline
onewline.txt -ItemType File -Force } 'Victor', ' Ashiedu' | Out-File E:
eports    NoNewline    
onewline.txt -NoNewline -Force
ال فرض المعلمة هي ما القوات عنصر جديد لإنشاء كافة المجلدات غير الموجودة في المسار.

لتشغيل البرنامج النصي ، انسخه إلى مستند PowerShell ISE جديد وقم بتشغيله. قبل أن أقوم بتشغيل البرنامج النصي ، توضح لقطة الشاشة أدناه أن المجلد غير موجود ...

كيفية كتابة إخراج PowerShell إلى ملف نصي وإنشاء مجلد إذا لم يكن موجودًا

بعد تشغيل البرنامج النصي ، يوجد المجلد الآن في المسار ...

أخيرًا ، إذا قمت بفتح ملف لا المجلد ، ستجد النص ، nonewline.txt .

كيفية استخدام سلسلة PowerShell للكتابة إلى ملف نصي

يمكنك استخدام PowerShell لضم محتوى ملفين نصيين في ملف نصي واحد. تسمى عملية ضم ملفين نصيين في ملف واحد بالتسلسل.

على سبيل المثال ، قمت بإنشاء ملفين ، Processfile1.txt و Processfile2.txt . ثم أستخدم الحصول على المحتوى لربط الملفات.

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

Get-Process | out-file E:
eportsProcessfile1.txt Get-Process | out-file E:
eportsProcessfile2.txt Get-Content E:
eportsProcessfile1.txt, E:
eportsProcessfile2.txt | Set-Content E:
eportsSingleProcessfile.txt

كيفية استخدام بوويرشيل لكتابة التاريخ والوقت الإخراج إلى ملف نصي

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

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

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

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

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

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

أخيرًا ، تكتب البرامج النصية سجلات الأخطاء مع طوابع التاريخ والوقت في ملف نصي.

هنا هو السيناريو. انظر أدناه للحصول على شرح مفصل لكل سطر ...

$Servers = Get-Content E:
eportsITGServers.txt $logfilename = Get-Date -Format 'dddd dd-MM-yyyy' $Servers.ForEach( { $PingTest = Test-Connection -ComputerName $_ -Count 1 -Quiet If ($PingTest -eq $True) { Get-EventLog -ComputerName $_ -LogName System } Else ` Out-File E:
eports$logfilename.txt -Append } )

لتشغيل البرنامج النصي ، انسخه إلى مستند PowerShell ISE جديد ، ثم قم بتشغيل البرنامج النصي. عندما قمت بتشغيل البرنامج النصي ، قام بإنشاء ملف يسمى الأربعاء 02-06-2021.txt - تاريخ اليوم.

بالإضافة إلى ذلك ، قام بإنشاء إدخالات الملف النصي ، الأربعاء 02-06-2021.txt - انظر اللقطة في الاسفل…

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

  Line 1  $Servers = Get-Content E:
eportsITGServers.txt  Line 2  $logfilename = Get-Date -Format 'dddd dd-MM-yyyy'  Line 3  $Servers.ForEach( {  Line 4  $PingTest = Test-Connection -ComputerName $_ -Count 1 -Quiet  Line 5  If ($PingTest -eq $True) {  Line 6   Get-EventLog -ComputerName $_ -LogName System  Line 7  }  Line 8  Else `  Line 11  Out-File E:
eports$logfilename.txt -Append  Line 12   Line 13  }  Line 14  )

فيما يلي تفصيل لهذا البرنامج النصي PowerShell الذي يبدو معقدًا:

  1. في خط 1 ، لقد استخدمت ملف الحصول على المحتوى الأمر لاستيراد قائمة الخوادم الخاصة بي إلى PowerShell. يتم حفظ الخوادم في ملف نصي - Get-Content E: reports ITGServers.txt. أخيرًا ، قمت بحفظ نتيجة قائمة الخوادم في متغير يسمى الخوادم .
  2. ثم في خط 2 لقد أنشأت اسم الملف النصي الذي سأحفظ فيه رسائل الخطأ الخاصة بي. لقد استخدمت الحصول على التاريخ أمر لإنشاء ملف نصي.

    في السطر 10 ، سأكتب البرنامج النصي PowerShell يكتب سجلات الأخطاء في الملف النصي - المزيد حول هذا لاحقًا. أخيرًا ، لكي أتمكن من استخدام هذا الملف لاحقًا في البرنامج النصي ، قمت بحفظه في متغير يسمى logfilename .
  3. يستمر النص بتنسيق الخط 3. في هذا الخط ، أقدم ملف للجميع طريقة . تسمح لي هذه الطريقة بتكرار محتوى الملف المحفوظ في ملف الخوادم عامل.

    هناك نوعان من العناصر الهامة في للجميع طريقة المقدمة في السطر 3 - (و {. قوس الفتح الأول ، (يفتح للجميع طريقة . علاوة على ذلك ، القوس {يفتح للجميع كتلة بيان الأمر.
  4. ثم في الخط 4 ، أقوم بتنفيذ أمر ping لكل خادم محفوظ بتنسيق الخوادم عامل. خلال كل دورة للجميع منع التكرار ، يأخذ اسم خادم من ملف الخوادم متغير - يحفظه في متغير تلقائي ، $ _ - ثم يستخدم اسم الخادم المحفوظ في $ _ كاسم الكمبيوتر في اختبار ping.

    مرة أخرى ، لتسهيل الوصول إلى نتيجة اختبار ping ، أقوم بحفظ النتيجة في متغير آخر يسمى اختبار PingTest . ستكون نتيجة اختبار ping إما صحيح أو خطأ شنيع .
  5. في الخط 5 ، أعرض كتلة عبارة IF. ثم في حالة جزء من الكتلة () ، لكل خادم ، أختبر ما إذا كانت نتيجة اختبار ping المحفوظة في اختبار PingTest المتغير صحيح أو خطأ شنيع .

    علاوة على ذلك ، إذا كانت نتيجة اختبار ping صحيح ، يقوم البرنامج النصي PowerShell بتنفيذ المهمة في كتلة أوامر جملة IF. يتم فتح كتلة أوامر جملة IF بـ {قوس في السطر 5.
  6. ثم في الخط 6 ، أقوم بتشغيل الأمر في كتلة عبارة IF. في الخط 7 ، أقوم بإغلاق كتلة أوامر عبارة IF بقوس إغلاق ،}.
  7. الخط 8يقدم آخر بيان جزء من كتلة بيان IF. في هذه الكتلة ، أقوم بتشغيل الأمر الذي أريد تشغيله على جميع الخوادم التي أعادت False لاختبار ping.
  8. في الخط 9 ، يقوم البرنامج النصي بإنشاء التاريخ والوقت الحاليين. ثم يحفظ النتيجة في متغير يسمى التاريخ والطابع الزمني . سيستخدم البرنامج النصي هذا المتغير في السطر 10
  9. ثم في الخط 10 ، يكتب البرنامج النصي PowerShell طابع التاريخ والوقت الحاليين في الملف النصي الذي قمت بإنشائه في السطر 2. الأمر الموجود في السطر 9 موجود في 3 أجزاء.

    في الجزء الأول ، يُنشئ البرنامج النصي جزءًا من رسالة الخطأ. يتضمن هذا الجزء متغير التاريخ والطابع وبعض المسافات.

    ثم في جزء الأمر (الرسالة) ، يشتمل البرنامج النصي على رسالة فعلية - الخادم ، تم تخطي $ _ لأنه لم يستجب لبرنامج ping. المتغير التلقائي ، $ _ هو نفس المتغير الذي تم إنشاؤه بواسطة ForEaxch بيان في الخط 4 .

    أخيرًا ، يتم توجيه الرسالة بأكملها إلى الأمر Out-File - هذا بتنسيق السطر 11 .
  10. السطر 12يغلق آخر عبارة كتلة أوامر مع قوس إغلاق}.
  11. ثم في السطر 13 ، يقوم البرنامج النصي بإغلاق ملف للجميع بيان أمر كتلة مع ساعة قوس إغلاق}.
  12. أخيرًا ، في السطر 14 ، يقوم البرنامج النصي بإغلاق ملف للجميع طريقة مع قوس الإغلاق ،). ال للجميع طريقة تم فتحه في السطر 3.

استخدم PowerShell للكتابة إلى ملف نصي: الأسئلة المتداولة

استخدم Powershell للكتابة إلى ملف نصي: الأسئلة المتداولة 1. كيف يمكنني إرسال نتائج PowerShell إلى ملف نصي؟

توجد 3 طرق لإرسال نتائج PowerShell إلى ملف نصي.

أولاً ، يمكنك استخدام عامل التشغيل> بجوار النتيجة التي تريد إرسالها إلى ملف نصي ، متبوعًا بمسافة ، ثم المسار الكامل إلى الملف النصي.

بالإضافة إلى ذلك ، يمكنك استخدام الأمر Out-File Cmdlets. لاستخدام Out-File ، توجيه الإخراج (|) ، إخراج نتيجة PowerShell إلى Out-File متبوعًا بمسافة ، ثم المسار الكامل إلى الملف النصي.

أخيرًا ، يمكنك إلحاق نتائج PowerShell بملف نصي موجود باستخدام Add-Content. الاستخدام مشابه لـ Out-File الذي تم شرحه مسبقًا.

2. كيف يمكنني حفظ ملف نصي في PowerShell؟

يمكنك استعمال ال عنصر جديد cmdlet لإنشاء ملف نصي جديد في PowerShell. لإضافة عناصر إلى الملف النصي وحفظه تلقائيًا ، استخدم ملحق إضافة محتوى cmdlet.

3. كيف يمكنني قراءة ملف في PowerShell؟

استخدم ال الحصول على المحتوى cmdlet لقراءة محتوى ملف نصي في PowerShell. على سبيل المثال ، لقراءة محتوى D: text.txt ، استخدم الأمر الحصول على المحتوى D: text.txt

كيف يمكنني قراءة ملف في بوويرشيل

4. كيف يمكنك عرض القيمة المخزنة في متغير في وحدة تحكم PowerShell؟

أدخل اسم المتغير في PowerShell واضغط على مفتاح الإدخال. سيتم عرض القيمة المخزنة في متغير Powershell في وحدة التحكم. على سبيل المثال لعرض القيم المخزنة في ملف $ المحتوى متغير ، ما عليك سوى إدخال $ Console في PowerShell واضغط على مفتاح الإدخال.

كيف يمكنك عرض القيمة المخزنة في متغير في وحدة تحكم PowerShell؟

5. كيف تضيف في بوويرشيل؟

أسهل طريقة للإضافة في PowerShell هي إدخال الأرقام مفصولة بعلامة الجمع (+) ، ثم الضغط على مفتاح الإدخال. على سبيل المثال ، لإضافة 2 و 5 ، أدخل 2 + 5 ، ثم اضغط على مفتاح الإدخال. سيتم عرض الإجابة في وحدة التحكم.

كيف تضيف في بوويرشيل

هذا هو! دليلنا المحدث مع أمثلة شاملة لكتابة إخراج PowerShell إلى ملف نصي.

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

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

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

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

  1. خارج الملف
  2. إضافة محتوى
  3. مجموعة المحتوى
  4. خارج لاغية
  5. الحصول على التاريخ
  6. about_Redirection