متى تستخدم الأنابيب المسماة في ويندوز؟
-
12-09-2019 - |
سؤال
في * Nix العديد من تطبيقات سطر الأوامر التي تقبل أسماء الملفات كجدات تقبل الأنابيب أيضا. مثال:
anApplication file.txt
يعمل أيضا مع
anApplication | anotherApplication arguments
ويتم إعادة توجيه نتيجة "الاخرين" إلى "التوصيل" كما كان ملف
لقد تعلمت أن Windows ما يعادل هذا هو "أنبوب مسمى". وأتساءل عما إذا كان يجب أن يكون تطبيق سطر الأوامر على دراية بالأنابيب المسماة لفهمه، أو إذا كان أي تطبيق سطر الأوامر يقبل ملف كوسيطة تعمل مع أنبوب مسمى بدلا من ذلك.
المحلول
لديك هذه إلى الوراء تماما. فقط لتكون دقيقة:
anApplication file.txt
هذا يعمل anApplication
مع اسم الملف file.txt
كوسيطة سطر الأوامر الأولى.
anApplication | anotherApplication arguments
هذا يعمل anApplication
مع عدم وجود حجج سطر الأوامر. يتم توصيل قياسي خارج معيار anotherApplication
الذي يتم تشغيل مع arguments
كما حجج سطر الأوامر. هذا هو نفسه تماما على Windows كما هو في إصدارات UNIX. الأنابيب المسماة هي ميزة نظام التشغيل المختلفة تماما.
الأنبوب المسمى هو إدخال دليل يشبه ملف، ولكن يعمل مثل تيار من البيانات التي يمكنك إرفاق الإخراج والإدخال إليها.
نصائح أخرى
أ اسمه الأنابيب على Windows شيء مختلف تماما مما كنت تتحدث عنه. الأنبوب المسمى هو في الواقع أداة للمساعدة في بناء تطبيقات الخادم على Windows، وهو ما يعادل تقريبا "مقبس نطاق UNIX".
في وضعك، سواء anApplication
يعتمد Works في هذا الوضع على كيفية تفاعل التطبيق عند التنفيذ دون اسم ملف في سطر الأوامر. (أنا أتحدث عن الترتيب في وصفك؛ سطر الأوامر للخلف كما هو مذكور من إجابة أخرى.) إذا كان التطبيق يقرأ من stdin
عند البدء بدون سطر الأوامر، فإن هذا النوع من ترتيب أنابيب قذيفة سيعمل. إذا بدلا من ذلك، فإن التطبيق يطبع رسالة تعليمية وإخراج عند بدء تشغيل اسم ملف، ثم لن يعمل أنبوب الشل هذا.
Afaik يعمل الشيء نفسه تحت النوافذ كما هو الحال في UNIX. أفترض أن بعض وظائف API وحدة التحكم Win32 الأكثر تقدما قد تجاوز هذا، ولكن عليك أن تقرأ الوثائق لذلك.
لاحظ أن هذا هو بناء جملة cmd.exe.
يجب أن يعمل هذا النوع من إعادة توجيه الأنابيب مع أي برنامج، حتى الإجابة على سؤالك المحدد، لا يحتاج البرنامج إلى رمز خاص إذا كان تطبيق وحدة التحكم القياسية.
هناك تحذير واحد - إذا كان البرنامج يحصل على إدخال من خلال نماذج مراقبة لوحة المفاتيح الخاصة من API وقت التشغيل، فلن تعمل إعادة التوجيه.