Site icon Syrus

كيف تكتب إخراج بوويرشيل إلى ملف

كيف تكتب إخراج بوويرشيل إلى ملف

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

كيف يعمل Out-File؟

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

كيفية استخدام ملف Cmdlet

في أبسط صوره ، يتطلب استخدام Out-File cmdlet توفير مسار واسم ملف حيث يجب كتابة الإخراج.

لنفترض أنك تريد إنشاء قائمة بخدمات النظام التي تعمل حاليًا على ويندوز ، ثم اكتب القائمة في ملف نصي باسم C: \ Scripts \ Services.txt. يمكنك القيام بذلك باستخدام الكود أدناه:

$Services = Get-Service | Where-Object {$_.Status -eq ‘Running’}

الخدمات | Out-file -FilePath “C: \ Scripts \ Services.txt”
كما ترى ، تمت كتابة قائمة الخدمات قيد التشغيل إلى متغير اسمه $ Services. تم نقل محتويات المتغير بعد ذلك إلى ملف Out-File cmdlet. ثم تم استخدام معلمة cmdlet’s -FilePath لإخبار PowerShell بمكان حفظ الملف وماذا نسميه.

كيف تكتب إخراج بوويرشيل إلى ملف: كيف تقرأ ملف نصي

عندما تستخدم Out-File cmdlet لإنشاء ملف نصي ، يمكنك فتح الملف النصي الناتج في Notepad أو أي محرر نصوص آخر. يمكنك أيضًا عرض محتويات الملف داخل PowerShell.

عندما يتعلق الأمر بعرض ملف نصي داخل PowerShell ، عادةً ما أمسك بنفسي باستخدام الأمر Type. أمر النوع هو بقايا من أيام DOS. يتطلب منك فقط توفير المسار واسم الملف. لذلك ، على سبيل المثال ، إذا أردت رؤية محتويات ملف C: \ Scripts \ Services.txt ، فستدخل:

اكتب C: \ Scripts \ Services.txt
النوع هو اسم مستعار لأمر Get-Content cmdlet الخاص بـ PowerShell ، والذي يعمل بنفس الطريقة. فقط أدخل Get-Content cmdlet مع مسار واسم الملف الذي تريد عرضه.

هنا مثال:

Get-Content C: \ Scripts \ Services.txt

كيف تكتب إخراج بوويرشيل إلى ملف: كيفية ضبط الترميز

عندما تستخدم Out-File cmdlet لإنشاء ملف نصي ، لا داعي للقلق عادةً بشأن تحديد نظام التشفير. عادةً ما يعمل الترميز الافتراضي بشكل جيد. ومع ذلك ، يمكنك ضبط الترميز على ASCII إذا لزم الأمر ، ويمكنك حتى تحديد عرض الخط.

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

إذا كنت تريد ضبط الترميز على ASCII وتريد تعيين أقصى عرض للخط ، فستحتاج إلى إلحاق معلمات -Encoding و -Width بأمر Out-File cmdlet.

إليك ما قد يبدو عليه مثل هذا الأمر:

الخدمات | Out-file -FilePath ‘C: \ Scripts \ Services.txt’ -تشفير ASCII -Width 80
كيفية إلحاق البيانات
إذا كنت تستخدم Out-File cmdlet وكان الملف المحدد موجودًا بالفعل ، فسيتم عادةً الكتابة فوق هذا الملف. ومع ذلك ، من الممكن إلحاق بيانات جديدة بنهاية الملف بدلاً من الكتابة فوق الملف. المفتاح هو تضمين المعلمة -Append.

فيما يلي مثال على كيفية استخدام المعلمة -Append:

الخدمات | Out-file -FilePath ‘C: \ Scripts \ Services.txt’ -إلحاق
كيفية فرض الكتابة فوق ملف موجود
عند استخدام PowerShell لإنشاء ملف نصي ، قد تحدث مشكلة أخرى في بعض الأحيان: تحتاج إلى الكتابة فوق ملف ، ولكن تتم معاملة هذا الملف على أنه للقراءة فقط. الحل البديل لهذا (بافتراض وجود الأذونات الضرورية) هو إلحاق المعلمة -Force بأمر Out-File cmdlet.

هنا مثال:

الخدمات | Out-file -FilePath ‘C: \ Scripts \ Services.txt’ -Force
كيفية منع ملف من الكتابة
قد يحتوي الملف النصي الذي أنشأته على بيانات مهمة تريد التأكد من عدم الكتابة فوقها. أفضل طريقة لمنع الكتابة فوق الملف النصي هي إلحاق المعلمة -NoClobber. تتسبب المعلمة -NoClobber في أن ينتج عن أمر cmdlet للملف الخارجي خطأ إذا كان الملف المحدد موجودًا بالفعل.

هنا مثال:

الخدمات | Out-file -FilePath ‘C: \ Scripts \ Services.txt’ -NoClobber

Exit mobile version