النقاط الرئيسية
لتجنب المسافات في مسار ملف Windows، ضع علامتي اقتباس مزدوجتين حول قسم المسار الذي يحتوي على مسافة. على سبيل المثال: C:\”Test Folder”\text.txt. يمكنك أيضًا وضع علامتي اقتباس حول المسار بالكامل للتأكد من عدم تفويت أي مسافات.
تستخدم بيئات سطر الأوامر مثل موجه الأوامر في Windows وPowerShell المسافات لفصل الأوامر والحجج — ولكن أسماء الملفات والمجلدات يمكن أن تحتوي أيضًا على مسافات. لتحديد مسار ملف يحتوي على مسافة بداخله، ستحتاج إلى “إفلاته”.
سطر الأوامر 101: لماذا يجب عليك تخطي المسافات
يؤدي “إفلات” حرف ما إلى تغيير معناه. على سبيل المثال، سيؤدي إفلات مسافة إلى جعل shell يعاملها كحرف مسافة قياسي وليس كحرف خاص يفصل بين وسيطات سطر الأوامر.
على سبيل المثال، لنفترض أن لديك ملف نصي تريد رؤية محتوياته. يمكنك القيام بذلك باستخدام الأمر type. بافتراض أن الملف النصي موجود في C:\Test\File.txt
، سيؤدي الأمر التالي في موجه الأوامر إلى إظهار محتوياته:
type C:\Test\File.txt
رائع. الآن، ماذا لو كان لديك نفس الملف في C:\Test Folder\Test File.txt
إذا حاولت تشغيل الأمر أدناه، فلن ينجح الأمر — تلك المسافات في مسار الملف تعيق الأمر.
type C:\Test Folder\Test File.txt
يعتقد سطر الأوامر أنك تحاول البحث عن ملف يسمى C:\Test
ويقول “لا يمكن العثور على المسار المحدد”.
ثلاث طرق لتجاوز المسافات على نظام التشغيل Windows
هناك ثلاث طرق مختلفة يمكنك من خلالها الهروب من مسارات الملفات على نظام التشغيل Windows:
- عن طريق وضع المسار (أو أجزاء منه) بين علامتي اقتباس مزدوجتين ( ” ).
- عن طريق إضافة علامة الإدراج ( ^ ) قبل كل مسافة. (هذا يعمل فقط في موجه الأوامر/CMD، ولا يبدو أنه يعمل مع كل الأوامر.)
- عن طريق إضافة حرف علامة التشديد ( ` ) قبل كل مسافة. (هذا يعمل فقط في PowerShell، ولكنه يعمل دائمًا.)
سنوضح لك كيفية استخدام كل طريقة.
قم بإحاطة المسار بعلامات اقتباس ( ” )
الطريقة القياسية لضمان تعامل Windows مع مسار الملف بشكل صحيح هي وضعه بين علامتي اقتباس مزدوجتين ( ” ). على سبيل المثال، باستخدام أمر العينة أعلاه، سنقوم فقط بتشغيل الأمر التالي بدلاً من ذلك:
type "C:\Test Folder\Test File.txt"
يمكنك بالفعل وضع أجزاء من المسار بين علامتي اقتباس إذا كنت تفضل ذلك. على سبيل المثال، لنفترض أن لديك ملفًا باسم File.txt في هذا المجلد. يمكنك تشغيل الأمر التالي:
type C:\"Test Folder"\File.txt
ومع ذلك، فهذا ليس ضروريًا — في معظم الحالات، يمكنك فقط استخدام علامات الاقتباس حول المسار بالكامل.
يعمل هذا الحل في بيئة موجه الأوامر التقليدية (CMD)، وفي Windows PowerShell، وفي Windows Terminal.
في بعض الأحيان: استخدم حرف الإدراج لإفلات المسافات ( ^ )
في موجه الأوامر، يتيح لك حرف الإدراج ( ^ ) تجنب المسافات — نظريًا. ما عليك سوى إضافته قبل كل مسافة في اسم الملف. (ستجد هذا الحرف في صف الأرقام على لوحة المفاتيح. لكتابة حرف الإدراج، اضغط على Shift+6.)
إليك المشكلة: على الرغم من أن هذا من المفترض أن يعمل، وهو ما يحدث أحيانًا، إلا أنه لا يعمل طوال الوقت. إن طريقة تعامل موجه الأوامر مع هذه الشخصية غريبة.
على سبيل المثال، باستخدام أمر العينة الخاص بنا، يمكنك تشغيل الأمر التالي، ولكنه لن يعمل:
type C:\Test^ Folder\Test^ File.txt
من ناحية أخرى، إذا حاولنا فتح ملفنا مباشرة عن طريق كتابة مساره في موجه الأوامر، يمكننا أن نرى أن علامة الإدراج تفلت من المسافات بشكل صحيح:
C:\Test^ Folder\Test^ File.txt
إذن متى يعمل هذا الأمر؟ حسنًا، استنادًا إلى بحثنا، يبدو أنه يعمل مع بعض التطبيقات ولا يعمل مع تطبيقات أخرى. قد تختلف تجربتك وفقًا للأمر الذي تستخدمه. إن طريقة تعامل موجه الأوامر مع هذا الحرف غريبة. جرّبها مع أي أمر تستخدمه، إذا كنت مهتمًا – فقد تعمل أو لا تعمل.
من أجل التناسق، نوصيك بالالتزام باستخدام علامات الاقتباس المزدوجة في موجه الأوامر أو التبديل إلى PowerShell واستخدام طريقة علامة الاقتباس الخطيرة أدناه.
حرف الهروب في PowerShell: استخدام حرف التشكيل الخطير ( ` )
يستخدم PowerShell حرف علامة التهجئة ( ` ) كحرف إفلات. ما عليك سوى إضافته قبل كل مسافة في اسم الملف. (ستجد هذا الحرف أعلى مفتاح Tab وأسفل مفتاح Esc على لوحة المفاتيح.)
type C:\Test` Folder\Test` File.txt
يخبر كل حرف لهجة خطيرة برنامج PowerShell بالإفلات من الحرف التالي.
لا يعمل هذا إلا في بيئة PowerShell. سيتعين عليك استخدام حرف الإدراج في موجه الأوامر.
إذا كنت على دراية بأنظمة التشغيل الشبيهة بنظام UNIX مثل Linux وmacOS، فقد تكون معتادًا على استخدام حرف الشرطة المائلة العكسية ( \ ) قبل المسافة لإفلاتها. يستخدم Windows هذا في مسارات الملفات العادية، لذا فهو لا يعمل — حرفا علامة الإدخال ( ^ ) وعلامة التهجئة ( ` ) هما إصدار Windows من الشرطة المائلة العكسية، اعتمادًا على غلاف سطر الأوامر الذي تستخدمه.