البرمجة

حل مشكلة PowerShell في وضع غير تفاعلي

الخطأ الذي تواجهه يشير إلى أن PowerShell في وضع غير تفاعلي (NonInteractive)، مما يعني أن الوضع الحالي لـ PowerShell لا يدعم القراءة أو الإشعار. هذا يمنع استخدام الأمر Remove-Item بشكل صحيح حيث إنه يحتاج إلى تأكيد (-Confirm) والقراءة من المستخدم. لتجاوز هذه المشكلة، يمكنك استخدام -Force للتأكد من إزالة الملفات والمجلدات دون الحاجة للتأكيد من المستخدم. ولكن، للأسف، هذا لن يعمل في وضع غير تفاعلي.

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

powershell
$ConfirmPreference = "None" Remove-Item -Path $source -Force -Confirm:$false | Where { $_.PSIsContainer }

هذا الأمر يعيد تعيين الإعداد الافتراضي لتأكيد الحذف ($ConfirmPreference) إلى “None”، مما يعني عدم الحاجة لتأكيد الحذف. ربما تحتاج إلى تشغيل هذا الأمر كجزء من سياق PowerShell الخاص بك في البداية لضمان أنه يعمل كما هو متوقع.

المزيد من المعلومات

عندما تكون PowerShell في وضع غير تفاعلي، فإن الأوامر التي تتطلب تأكيد المستخدم أو القراءة من المستخدم لا تعمل كما هو متوقع. يمكن أن تحدث هذه المشكلة في بيئة TFS 2015 builds عندما يتم تشغيل سكربت PowerShell الخاص بك في سياق غير تفاعلي.

للتأكد من أن PowerShell يعمل في وضع تفاعلي، يمكنك إعادة تعيين متغير البيئة $ConfirmPreference إلى قيمته الافتراضية “High” بعد الانتهاء من الأمر الذي يحتاج إلى تأكيد. يمكنك فعل ذلك باستخدام الأمر التالي:

powershell
$ConfirmPreference = "High"

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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