تعلم كيفية البرمجة ب #C


الدرس: سطر الأوامر


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

ما هو سطر الأوامر؟


سطر الأوامر هو ما يسمح لنا بتشغيل برامجنا. حاضر جدًا في الوقت الذي كان فيه نظام Windows محدودًا ، فإنه يميل إلى الاختفاء من استخداماتنا. ولكن ليس في اعماق عملها.
بشكل عام ، يتم استخدام سطر الأوامر لتمرير الوسائط إلى برنامج. على سبيل المثال ، لفتح ملف نصي باستخدام Notepad ( notepad.exe) ، يمكنك القيام بذلك بطريقتين مختلفتين. إما أن نفتح Notepad ونذهب إلى القائمة Fichier> Ouvrir ثم سنبحث عن الملف لفتحه. إما أن نستخدم سطر الأوامر لفتحه مباشرة.
للقيام بذلك ، فقط استخدم الأمر:

    notepad c:\test.txt 
    
ويُفتح الملف c:\test.txt مباشرة في Notepad .
ما حدث وراء ذلك هو أننا طلبنا تشغيل البرنامج notepad.exe مع المُدخل c:\test.txt . حلل برنامج Notepad سطر الأوامر الخاص به ، ووجد مُدخلا هناك وفتح الملف المقابل.
رائع! سوف نتعلم أن تفعل الشيء نفسه!

تمرير مُدخلات سطر الأوامر


أول شيء علينا فعله هو معرفة كيفية تمرير المُدخلات من سطر الأوامر. توجد عدة حلول. يمكننا على سبيل المثال تنفيذ الأمر الذي كتبته أعلاه من القائمة Démarrer> Exécuter (أو المجموعة windows+ r ) .
c sharp .net framework
يمكننا أيضا القيام بذلك من موجه الأوامر ( Menu Démarrer> Accessoires> Invite de commande) :
c sharp .net framework
يؤدي هذا إلى فتح وحدة تحكم سوداء ، مثل الوحدة التي نعرفها جيدًا والتي يمكننا من خلالها كتابة التعليمات:
c sharp .net framework
لكن ، ما يهمنا بشكل خاص ، هو أن نكون قادرين على القيام بذلك من Visual Studio Express لكي نتمكن من تمرير الوسائط إلى برنامجنا.
للقيام بذلك ، سوف نذهب إلى خصائص مشروعنا (الزر الأيمن في المشروع ، Propriétés ) ثم نذهب إلى علامة التبويب Déboguer ونرى مربع نص يسمح بوضع الحجج في سطر الأوامر. دعنا نضيف على سبيل المثال "Hello Nico " :
c sharp .net framework
تمرير قيمة في سطر الأوامر من Visual Studio
ها نحن الآن ، عندما نقوم بتشغيل تطبيقنا ، سيقوم Visual Studio Express بتمرير الوسائط التي حددناها كمُدخل لسطر الأوامر.
لاحظ أنه في هذه الحالة ، تكون وسائط "Hello Nico" صالحة فقط عند تشغيل التطبيق من خلال Visual Studio Express . من الواضح ، إذا قمنا بتشغيل تطبيقنا من موجه الأوامر ، فسوف نحتاج إلى إعادة الوسائط إلى البرنامج حتى يتمكن من استخدامها.
انه جيد! باستثناء ذلك في الوقت الراهن ، فإنه لا يغير حياتنا! يجب أن نتعلم كيفية التعامل مع هذه المعايير ...

قراءة سطر الأوامر


يمكنك قراءة محتويات سطر الأوامر بطريقتين مختلفتين. هل تتذكر الطريقة  Main() ؟ لقد رأينا أن Visual Studio Express ينشئ هذه الطريقة مع المُدخلات. حسنا هذه المُدخلات ، لن تخمن! هذه هي مُدخلات سطر الأوامر. 

    static void Main(string[] args)
    {
    } 
    
المتغير args هو مجموعة من السلاسل. مع العلم أن كل مُدخل محددة بمسافات ، سنجد كل مُدخل في فهرس مختلف من الجدول.
مما يعني أنني إذا استخدمت الكود التالي:

    foreach (string parametre in args)
    {
        Console.WriteLine(parametre);
    } 
    
وأنني أبدأ طلبي باستخدام المُدخلات المحددة مسبقًا ، سأحصل على:
c sharp .net framework
ها نحن ، لقد استرجعنا المُدخلات من سطر الأوامر ، وسيتعين علينا معالجتها فقط في برنامجنا. كما هو متوقع ، نحصل على مُدخلين. الأول هو السلسلة "Hello" ، والثاني هو السلسلة "Nico" . تذكر أن زر المسافة في لوحة المفاتيح يعمل بمثابة محدد بين المُدخلات.
الطريقة الأخرى للحصول على سطر الأوامر هي استخدام الطريقة Environment.GetCommandLineArgs() . تقوم بإرجاع صفيف يحتوي على المُدخلات ، مثل ما يتم تمريره في المُدخلات إلى الوظيفة Main . الفرق الوحيد هو أنه في العنصر الأول من الصفيف ، سنجد المسار الكامل لبرنامجنا. هذا يمكن أن يكون مفيدا في بعض الحالات. إذا كان هذا لا يهمك ، فسوف يكفي البدء في القراءة من الفهرس رقم 1.
يعرض المثال التالي جميع قيم في الصفيف:

    foreach (string parametre in Environment.GetCommandLineArgs())
    {
        Console.WriteLine(parametre);    
    } 
    
يعطي :
c sharp .net framework
عرض مُدخلات سطر الأوامر
تحذير: إذا كنت بحاجة إلى الوصول إلى فهرس دقيق للجدول ، فتأكد من أن حجم الجدول يسمح بذلك. تذكر أنه إذا كانت المصفوفة تحتوي على عنصر واحد فقط وتحاول الوصول إلى العنصر الثاني ، فسيحدث خطأ.
لقد قلت إن حرف المسافة في لوحة المفاتيح هو الذي جعل من الممكن تحديد المُدخلات. حاولت إضافة المُدخل C:\Program Files\test.txt إلى سطر الأوامر الخاص بي من أجل تغيير موقع الملف ، لكن انتهى بي الأمر بمُدخلين بدلاً من واحدة ، هل هذا طبيعي؟
نعم ، هناك مسافة بين Program و Files .  الخدعة هي تمرير المُدخل في علامات الاقتباس، مثل هذا :
"C:\Program Files\test.txt"
. سيكون لدينا مُدخل واحدة فقط في سطر الأوامر بدلاً من 2.
على سبيل المثال :
c sharp .net framework
المُدخلات مع مسافات لسطر الأوامر

في الخلاصة


  • يمكنك تمرير المُدخلات إلى تطبيق ما باستخدام سطر الأوامر.
  • يمكن لبرنامج C# قراءة وتفسير هذه المُدخلات.
  • هذه المُدخلات مفصولة بمسافات.