मैं अपनी एनएएनटी स्क्रिप्ट से एक निश्चित EXE को कॉल करना चाहता हूं, और संपत्ति मौजूद होने पर किसी संपत्ति को तर्क के रूप में पास करना चाहता हूं, या अन्यथा कुछ भी पास नहीं करता हूं।संपत्ति अस्तित्व के आधार पर सशर्त रूप से NANT निष्पादन कार्य के लिए तर्क कैसे पारित करें?
नीचे कोड इस मामले के लिए सिर्फ फिट करने के लिए लगता है, लेकिन यह काम नहीं करता:
<exec program="notepad.exe">
<arg line="${file}" if="${property::exists('file')}" />
</exec>
यह Property 'file' has not been set
त्रुटि फेंक देते हैं। ऐसा लगता है कि यह स्थिति को अनदेखा करने वाली संपत्ति का मूल्यांकन करता है। मैं इसकी स्थिति false
की स्थिति में पूरे <arg>
तत्व को अनदेखा करने की अपेक्षा करता हूं।
यदि मैं इस ब्लॉक के ऊपर की संपत्ति को परिभाषित करता हूं, तो यह स्पष्ट रूप से ठीक काम करता है (भले ही संपत्ति खाली हो)। यदि यह एक ही मामला है, तो यह एक कामकाज के लायक हो सकता है, लेकिन मुझे कई तरह की संपत्तियां पास करनी होंगी। इसके अलावा, <if>
<exec>
के तहत एक वैध तत्व नहीं है ...
यह कैसे प्राप्त करें? कोई विचार?
आप वैकल्पिक रूप से उसी वैरिएबल को डिफ़ॉल्ट रूप से सेट कर सकते हैं जिसे आप पढ़ रहे हैं। यह अधिक स्पष्ट लगता है और इसके बजाय एक ही कथन है। <संपत्ति का नाम = "arg" value = "false" जब तक = "$ {property :: मौजूद नहीं है ('arg')}" /> – BradLaney
आपके उपयोग के मामले के आधार पर, क्या आपका मतलब आपके दूसरे कोड स्निपेट के लिए है? <लक्ष्य नाम = "उदाहरण"> <संपत्ति का नाम = "तर्क" मान = "डिफ़ॉल्ट मान" ओवरराइट = "झूठा" /> –