2009-05-10 12 views
7

फैंसी शेंमी वेब सामान भूल जाओ। मैं एक अच्छा .NET सीएलआई तर्क प्रसंस्करण उपयोगिता की तलाश में हूं, ओपन सोर्स कोड पसंद करते हैं। यह त्वरित और गंदे उपयोगिताओं के लिए है जो मजबूत और मैत्रीपूर्ण कमांड लाइन तर्क प्रबंधन की आवश्यकता है।.NET के लिए मजबूत और दोस्ताना कमांड लाइन टूल्स?

ये शायद इन दिनों प्रयासों के साथ उपयोगिताएं हैं। अच्छी कमांड लाइन हैंडलिंग लिखने के कुछ दिनों में निवेश करना अधिक लगता है ... लेकिन उन्हें वास्तव में इसकी आवश्यकता है।

विशेषताएं मुझे कमांड लाइन हैंडलर में पसंद है। मैं किसी भी ओपन सोर्स प्रोजेक्ट से रोमांचित हूं जिसमें निम्नलिखित में से 2 या 3 था।

  • एक सतत वाक्यविन्यास, posix had a nice command line standard, लेकिन आवश्यक रूप से पॉज़िक्स नहीं है।
  • कृषि के लिए संक्षिप्त नाम प्रदान करने की क्षमता। जैसे "msbuild/t" == "msbuild/target"
  • यह अच्छा कमांड लाइन पार्सिंग का समर्थन करता है, फिर रास्ते से बाहर हो जाता है। मुझे कुछ चाहिए कि मेरा कोड उपयोग करता है, ऐसा कुछ नहीं जो मेरे कोड पर एक पैटर्न लगाता है उदा। मैं एक घटना के साथ एक तर्क की उपस्थिति का जवाब देना नहीं चाहता, उस तरह की चीज।
  • चिंताओं का पृथक्करण इतना अच्छा है कि तर्क तर्क इकाई का परीक्षण किया जा सकता है।
  • ओह - क्या यह कक्षा गुणों (जैसे .NET कॉन्फ़िगरेशन कक्षाओं में) के गुणों को पढ़ने के लिए कहने के लिए दो है?
  • मुझे msbuild में कॉन्फ़िगरेशन फ़ाइल ओवरराइड पसंद है। मैं एक बिल्ड फ़ाइल में गुण सेट कर सकता हूं, लेकिन कमांड लाइन पर ओवरराइड कर सकता हूं।
  • "शो उपयोग" में निर्मित। WSF फ़ाइलें (csript.exe) में यह कार्यक्षमता है। हालांकि कमांड लाइन हैंडलिंग प्राप्त करने के लिए मैं jscript लिखने को तैयार नहीं हूं।
  • शक्तिशक्ति नहीं है। मैं अपनी कंपनी में किसी को भी नहीं ढूंढ सकता जो पावरहेल सिंटैक्स खड़ा कर सकता है।

पी एस मैं ऐसी बात नहीं मिल रहा है, तो मैं शायद एक गूगल कोड पर अगले कुछ हफ्तों में

पीपीएस छोड़ देंगे मैं टैग जोड़ सकता है, तो मैं इस "pleasesearchtheinternetforme" को टैग करता हूँ

उत्तर

7

कोडप्लेक्स से भी, CommandLine प्रोजेक्ट आपकी आवश्यकताओं को पूरा करने लगता है। प्रोजेक्ट्स होम पेज से प्रतिलिपि/पेस्ट का एक उदार आवेदन देता है ...

कमांड लाइन पार्सर लाइब्रेरी सीएलआर अनुप्रयोगों को कमांड लाइन इनपुट में हेरफेर करने के लिए एक सरल प्रोग्रामिंग इंटरफेस प्रदान करता है। यह लाइब्रेरी आपको अनुकूलन की अच्छी डिग्री के साथ एक सहायता स्क्रीन प्रदर्शित करने की अनुमति देती है। एपीआई कोड के लिए उबाऊ सब कुछ अपने कंधे पर रखता है।

कमान पार्सर लाइब्रेरी का समर्थन करता है:

  • लघु विकल्प (-s, उदाहरण के लिए)

    • विकल्प + मूल्य/कोई स्थान नहीं: -sHello
    • विकल्प + अंतरिक्ष + मूल्य: - हैलो
  • स्विच जैसे छोटे विकल्प; कोई मूल्य नहीं की आवश्यकता

    • विकल्प + अंतरिक्ष + Option + ....... -s -x -y -z
    • विकल्प + विकल्प + विकल्प + ...: -sxyz ...
    • विकल्प + विकल्प + अंतरिक्ष/कोई भी कंघी।: -sx -yz
  • लांग विकल्प (--long, उदाहरण के लिए)

    • विकल्प + बराबर + मूल्य: --long = हैलो
    • विकल्प + अंतरिक्ष + मूल्य: - लंबे हैलो
  • बना विकल्प (इसके बारे में मान)

    • किसी भी 1, 2 , 3, 4 (विभाजक विन्यास योग्य है)

आम सुविधाओं

दोनों के साथ रिक्त स्थान मान स्वीकार करता है: "नमस्ते विश्व" -s - लांग "हैलो सीएलआर!"

+0

मैं यहां शुरू करूंगा, धन्यवाद! – Precipitous

2

कोडप्लेक्स से, ConsoleFX आपकी आवश्यकताओं को पूरा करने लगता है। परियोजनाओं के होम पेज से प्रतिलिपि/पेस्ट का एक उदार आवेदन देता है ...

कंसोलएफएक्स आसानी से कमांड लाइन इंटरफ़ेस (सीएलआई) अनुप्रयोगों के विकास के लिए एक विशेषता-आधारित .NET/Mono ढांचा है। यह गुणों के उपयोग के माध्यम से कमांड लाइन तर्क पार्सिंग, त्रुटि प्रबंधन और सत्यापन जैसे सीएलआई अनुप्रयोग बनाने में शामिल अधिकांश कार्यों को स्वचालित करता है। ConsoleFx के साथ, आप अपने कमांड लाइन तर्कों को पार्स करने के लिए लंबे बोझिल कोड को अलविदा कह सकते हैं।

कंसोलएफएक्स कमांडलाइन पार्सर का उपयोग करके, आप कमांड लाइन तर्क निर्दिष्ट करने के लिए शर्तों की पूरी मेजबानी निर्दिष्ट कर सकते हैं।

  • आदेश पंक्ति तर्क के आदेश
  • निर्दिष्ट स्विच विकल्प और समय की संख्या वे कमांड लाइन तर्क
  • मापदंडों के लिए निर्दिष्ट किया जा करने की अनुमति दें के रूप में हो सकता है की सीमा लागू करना: ये क्षमता को शामिल कर सकते हैं स्विच विकल्प, और निर्दिष्ट किए जा सकने वाले पैरामीटर की संख्या को सीमित करें
  • गैर-स्विच तर्कों को निर्दिष्ट करें और उनका उपयोग कैसे किया जाए
  • स्विच पैरामीटर और गैर-स्विच तर्कों पर कस्टम सत्यापन चलाएं, जिसमें नियमित अभिव्यक्तियों के लिए परीक्षण शामिल हैं, फ़ाइल मास्क, पूर्णांक, बूलियन्स, enums, आदि
  • स्वचालित रूप से आसान पठनीयता
  • के लिए मजबूत टाइप गुणों के गैर स्विच तर्क के नक्शे कि ConsoleFx द्वारा नहीं किया जा सकता कस्टम सत्यापन प्रदर्शन करना एलान के तौर पर

ConsoleFx भी कंसोल के लिए उपयोगिता वर्गों प्रदान करता है कंसोल कक्षा में आउटपुट कैप्चरिंग और एक्सटेंशन। हम भविष्य में अन्य उपयोगिता वर्गों को जोड़ने की योजना बना रहे हैं, जिससे यह आपके कमांड लाइन अनुप्रयोगों को बनाने के लिए एकमात्र समाधान बना रहा है।

+0

annoyingly मुख पृष्ठ पर उदाहरण और आरंभ करने की मार्गदर्शिका वास्तव में संकलन नहीं है/काम करते हैं, आप बाहर काम करने के क्या नया पैरामीटर के लिए –

+0

हैं मिल गया है उदाहरण यहां वर्णित वर्णन विधि http://consolefx.codeplex.com/wikipage?title=GS_Simple04&referringTitle=GS_Simple वर्तमान संस्करण में मौजूद नहीं है और उस http://consolefx.codeplex.com/discussions के बारे में फ़ोरम पोस्ट पर कोई प्रतिक्रिया नहीं है/400819 –

+0

हालांकि यह एक अच्छी लाइब्रेरी है, ऐसा कहकर +1 –

0

जेनघिस (http://www.sellsbrothers.com/tools/genghis/) में एक है। रखरखाव की स्थिति के बारे में निश्चित नहीं है, और यह आपके इच्छित सामान से अधिक सामान के साथ आ सकता है।

7

आपको Mono.Options (http://www.ndesk.org/Options) की जांच करनी चाहिए क्योंकि यह बहुत अधिक क्रॉस-प्लेटफ़ॉर्म अनुकूल है और मोनो में बड़े पैमाने पर उपयोग किया जाता है।

+0

चालाक विचार, लेकिन मुझे वास्तव में उनके "चालाक का चालाक उपयोग" परेशान लगता है। स्थिर नही। कुछ विचार चुरा लेंगे। – Precipitous

+0

Mono.Options के लिए बड़े अप - http://devlicio.us/blogs/rob_reynolds/archive/2009/11/22/command-line-parsing-with-mono-options.aspx – ferventcoder

0

मैंने command line parsing class बनाया है जो आपके लिए एक (लिंक) अनुकूल तरीका है। उदाहरण के लिए इस कमांड लाइन:

var parameters = new ParametersParser(); 
parameters.GetParameters("-country") 

रिक्त स्ट्रिंग के साथ parmeter:

-country=Sweden -IsNiceCountry -Country="The Netherlands" /empty= /space=" " 

सभी देशों जाओ

parameters.HasKeyAndNoValue("-IsNiceCountry") 

कुंजी:

parameters.GetFirstValue("/Empty") 

कुंजी कोई मूल्य नहीं है मौजूद नहीं है (झूठी वापसी):

parameters.HasKey("/notExist") 

और कई और अधिक ...

संबंधित मुद्दे