كيف يمكنني إيقاف وسيطات سطر الأوامر التي تم هربها في مسافة مافين؟

StackOverflow https://stackoverflow.com/questions/1254682

  •  12-09-2019
  •  | 
  •  

سؤال

لدي مكون إضافي يستخدم Commandline الضفيرة لاستدعاء بعض العملية الخارجية والتقاط الإخراج. واحدة من الحجج في شكل مضحك مع مسافات ونقلت، على سبيل المثال - reange: "25 أغسطس 2008" - "04 أغسطس 2009". ليس لدي طريقة لتغيير التنسيق المطلوب للحجة، لكن الضفيرة بالكشف عن المساحات في الحجة والأغطية كلها بأكملها في علامات الاقتباس.

وبالتالي

call --range:"25 Aug 2008"-"04 Aug 2009"

يصبح

call "--range:"25 Aug 2008"-"04 Aug 2009""

ويفشل الاحتجاج.

هل يمكنني جعل الضفيرة تتوقف عن الهروب من الحجج؟

هل كانت مفيدة؟

المحلول

يستخدم كائن Commandline قذيفة للتفاعل مع البيئة المحلية، يمكنك تكوين Shell لتجاوز عملية الهروب الافتراضية لعدم الهروب من أي اقتباسات:

Commandline cl = new Commandline("call");
commandline.getShell().setQuotedArgumentsEnabled(false);

أن تدرك أن هذا يعني ذلك لا أحد من الحجج سيتم enquoted، لذلك استخدمها بعناية!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top