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