<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Making Command Line Arguments Easier [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx</link><description>Before we get to the meat of this blog post, I want to take a moment to introduce myself. My name is Matt Ellis and I’m working this summer as an intern on the Base Class Libraries team. I’m really enjoying my time here, and it’s pretty amazing to be</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title> BCL Team Blog Making Command Line Arguments Easier Matt Ellis | Quick Diets</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#9715380</link><pubDate>Tue, 09 Jun 2009 14:22:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9715380</guid><dc:creator> BCL Team Blog Making Command Line Arguments Easier Matt Ellis | Quick Diets</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://quickdietsite.info/story.php?id=12129"&gt;http://quickdietsite.info/story.php?id=12129&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9715380" width="1" height="1"&gt;</description></item><item><title> BCL Team Blog Making Command Line Arguments Easier Matt Ellis | Cast Iron Cookware</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#9692350</link><pubDate>Wed, 03 Jun 2009 22:42:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9692350</guid><dc:creator> BCL Team Blog Making Command Line Arguments Easier Matt Ellis | Cast Iron Cookware</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://castironbakeware.info/story.php?title=bcl-team-blog-making-command-line-arguments-easier-matt-ellis"&gt;http://castironbakeware.info/story.php?title=bcl-team-blog-making-command-line-arguments-easier-matt-ellis&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9692350" width="1" height="1"&gt;</description></item><item><title>Hi from the New Guy [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#914525</link><pubDate>Tue, 31 Oct 2006 22:10:59 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:914525</guid><dc:creator>BCLTeam's WebLog</dc:creator><description>&lt;p&gt;As one of the newest members of the BCL team, I wanted to take some time to introduce myself. I’m Matt&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=914525" width="1" height="1"&gt;</description></item><item><title>re: Making Command Line Arguments Easier [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#648263</link><pubDate>Tue, 27 Jun 2006 11:32:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:648263</guid><dc:creator>giovanni.costagliola</dc:creator><description>Take a tour of getopt GNU library.&lt;br&gt;&lt;br&gt;Btw, it would be nice to have a short and long form for a swith.&lt;br&gt;e.g.: -f &amp;lt;==&amp;gt; --file&lt;br&gt;the possibility to imply a default set of values if a flag is used&lt;br&gt;e.g. -x ==&amp;gt; -A -B&lt;br&gt;the possibility to definy a &amp;quot;mandatory-set&amp;quot; of flags&lt;br&gt;e.g. {-a, -b, -c}, I mean, if U use one of them you must use all the others&lt;br&gt;&lt;br&gt;and obviously a re or better a domain constraint on the possibile values&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=648263" width="1" height="1"&gt;</description></item><item><title>re: Making Command Line Arguments Easier [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#648262</link><pubDate>Tue, 27 Jun 2006 11:32:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:648262</guid><dc:creator>giovanni.costagliola</dc:creator><description>Take a tour of getopt GNU library.&lt;br&gt;&lt;br&gt;Btw, it would be nice to have a short and long form for a swith.&lt;br&gt;e.g.: -f &amp;lt;==&amp;gt; --file&lt;br&gt;the possibility to imply a default set of values if a flag is used&lt;br&gt;e.g. -x ==&amp;gt; -A -B&lt;br&gt;the possibility to definy a &amp;quot;mandatory-set&amp;quot; of flags&lt;br&gt;e.g. {-a, -b, -c}, I mean, if U use one of them you must use all the others&lt;br&gt;&lt;br&gt;and obviously a re or better a domain constraint on the possibile values&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=648262" width="1" height="1"&gt;</description></item><item><title>re: Making Command Line Arguments Easier [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#639458</link><pubDate>Tue, 20 Jun 2006 16:49:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:639458</guid><dc:creator>Jeremy Wiebe</dc:creator><description>Just a few random comments:&lt;br&gt;&lt;br&gt;1. Re: David Levine's comment #8. &amp;nbsp;I believe the Windows command prompt will properly handle paths with spaces, etc in them. &amp;nbsp;(Although the parser would have no way of telling what to do with this, for example:&lt;br&gt;&lt;br&gt;myapp.exe -f C:\Document and Settings\myuser\file.txt&lt;br&gt;&lt;br&gt;There's probably some hueristics to &amp;quot;guess&amp;quot; where file.txt resides, but probably not 100% correct all the time.&lt;br&gt;&lt;br&gt;2. Having the ability to specify either long and/or short parameter variants would be nice. &amp;nbsp;&lt;br&gt;&lt;br&gt; &amp;nbsp;For example:&lt;br&gt;&lt;br&gt; &amp;nbsp;myapp.exe -f=test.txt&lt;br&gt;&lt;br&gt; &amp;nbsp;... should be the same as...&lt;br&gt;&lt;br&gt; &amp;nbsp;myapp.exe -file=test.txt&lt;br&gt;&lt;br&gt;Specifying both long and short parameter names should be optional (so that some parameters may only have a &amp;quot;short&amp;quot; variant and some only a &amp;quot;long&amp;quot; variant.)&lt;br&gt;&lt;br&gt;3. Case sensivity of parameter names should be supported (but optional).&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=639458" width="1" height="1"&gt;</description></item><item><title>re: Making Command Line Arguments Easier [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#638854</link><pubDate>Tue, 20 Jun 2006 12:07:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:638854</guid><dc:creator>Christoph Richter</dc:creator><description>hmm... what i miss most? that there is no standard for getting the help about an commandline (/? /h /help -?,....). have no real problem about how i have to give it in, if i can read it somewhere. so really make an default implementation for an commandline tool, where you write your help text. e.g. with an dictionary where you add the param pattern and the explanation for that pattern and .net writes out the help on /? or whatever&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=638854" width="1" height="1"&gt;</description></item><item><title>re: Making Command Line Arguments Easier [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#636764</link><pubDate>Mon, 19 Jun 2006 15:50:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:636764</guid><dc:creator>David Levine</dc:creator><description>Some thoughts n addition to the above...&lt;br&gt;&lt;br&gt;1. Should be able to specify a response file that contains some or all the command line arguments; the parser should not care where the argument came from. &amp;nbsp;This will make it much easier to have tools automatically generate the argument list. For example... @list=&amp;lt;fileName&amp;gt;&lt;br&gt;&lt;br&gt;2. Default ordering should be order-independent. I can't think of any use cases where I want the arguments to be order dependent, but if so, then it should be an option that must be explicitly enabled.&lt;br&gt;&lt;br&gt;3. Should be able to handle a number of different methods of specifying arugment data, such as /a=SomeValue or -a:aValue, or any number of other combinations.&lt;br&gt;&lt;br&gt;4. Getting the parser to handle quotes and embedded quotes is important.&lt;br&gt;&lt;br&gt;5. I prefer that the ability to specify argument dependencies and other validation be handled by the application after parsing is complete. If you want to build it in then I prefer that it use an extensible mechanism defined by the parser and implemented by the application. There are so many variables that it should be left to up to the application to determine whether or not the arguments are valid. A simple heuristic of &amp;quot;arg B can exist only if arg A exists&amp;quot; is unlikely to be of much value and is not very flexible. &lt;br&gt;&lt;br&gt;6. The parser should be able to generate the command line from input arguments; i.e. an Unparse method. This is useful for tools/batch files that invoke other tools.&lt;br&gt;&lt;br&gt;7. The generated command line must be capable of correctly round-tripping through the parser.&lt;br&gt;&lt;br&gt;8. Paths and embedded quotes must be handled correctly. e.g. if a string contains an embedded space then it should be surrounded by quote marks unless it already is surrounded by quotes.&lt;br&gt;&lt;br&gt;9. Should handle environment variables.&lt;br&gt;&lt;br&gt;Hope you enjoy your stay at MSFT.&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=636764" width="1" height="1"&gt;</description></item><item><title>re: Making Command Line Arguments Easier [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#635442</link><pubDate>Sat, 17 Jun 2006 22:42:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:635442</guid><dc:creator>David Banister</dc:creator><description>What I think is most important is usability. In my opinion any logical way of specifying options should be acceptable. All of the following should do the same thing, but I that I lot of people would disagree with the last couple:&lt;br&gt;&lt;br&gt;thingy a b c&lt;br&gt;thingy -a -b -c&lt;br&gt;thingy /a /b /c&lt;br&gt;thingy abc&lt;br&gt;thingy a /b -c&lt;br&gt;thingy /ab-c&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=635442" width="1" height="1"&gt;</description></item><item><title>re: Making Command Line Arguments Easier [Matt Ellis]</title><link>http://blogs.msdn.com/b/bclteam/archive/2006/06/15/634693.aspx#635055</link><pubDate>Sat, 17 Jun 2006 10:26:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:635055</guid><dc:creator>Tomer Gabel</dc:creator><description>One feature that is often neglected in command line parsers is the ability to specify &amp;quot;debug-level&amp;quot; flags. Parameters that are flagged as debug-level should work exactly the same as other parameters, only they mustn't show in the automatically-generated &amp;quot;Usage:&amp;quot; printout.&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=635055" width="1" height="1"&gt;</description></item></channel></rss>