在从命令行读取参数/标志时,是否使用正斜杠(/)或连字符( – ),它们是否有任何约定(书面或一般理解)?
C:\> myprogram.exe -a C:\> myprogram.exe /a
这两个似乎在我的经验中是可以互换的,但是我没有使用足够的命令行工具来表示我发现了任何规则或模式.
有没有一个很好的理由,其中任何一个都被使用?如果我想要理论上可以使用星号(*)吗?
解决方法
您可以(理论上)使用任何您想要的,因为参数只是将字符串传递到您的命令行程序.
Windows约会似乎更喜欢使用正斜杠ipconfig / all,尽管有程序采用连字符gacutil -i或甚至一种环境变量语法设置SKUUPGRADE = 1.
* Nix约定似乎更喜欢单字母参数的连字符-v,多字符参数的双连字符 – 复字符.
我更倾向于连字符,因为它们与OS无关(正斜杠是某些操作系统中的路径分隔符),并用于更现代的Windows应用程序(例如nuget).
编辑:
这将是推荐使用.NET命令行参数解析的库的好地方:http://commandline.codeplex.com/