【问题标题】:How do I use command line arguments in my C# console app?如何在我的 C# 控制台应用程序中使用命令行参数?
【发布时间】:2011-08-07 17:20:26
【问题描述】:

我正在编写一个 url 缩短器应用程序,我还想使用 C# 创建一个控制台应用程序,以将 URL 推送到我也创建的 WCF 服务。

WCF 应用程序将缩短此 URI 上的 url;

http://example.com/shorten/http://exaple.com

所以我想要的就是这样。

我的控制台 exe 文件将位于 c:\dev 文件夹和 Windows 命令行中,我想这样做;

c:\dev>myapp -throw http://example.com

通过这种方法,我想与该服务交谈。谈话部分没有问题。但问题是我如何在命令行上提供这个 -throw 东西并获得响应并将该响应放在命令行上并提供一种方法将其复制到剪贴板。我在这里问太多了吗? :S 我不知道。

您能否指导我到某个地方我可以找到相关信息,或者您可以给我一个示例代码吗?

谢谢。

编辑: 我试过下面的代码;

    class Program {

    static void Main(string[] args) {

        if (args[0] == "-throw") {

            System.Windows.Forms.Clipboard.SetDataObject(args[1]);
            Console.WriteLine(args[1] + " has been added to clipboard !");
            Console.ReadLine();

        }

    }
}

我收到以下错误;

C:\Apps\ArgsTry\ArgsTry\bin\Debug>ArgsTry - 扔人

未处理的异常: System.Threading.ThreadStateException: 当前线程必须设置为单线程 OLE 之前的线程单元 (STA) 模式 可以拨打电话。确保您的 主函数具有 STAThreadAttribute 标在上面。在 System.Windows.Forms.Clipboard.SetDataObject(对象 数据,布尔副本,在 t32 retryTimes 中, Int32 重试延迟)在 System.Windows.Forms.Clipboard.SetDataObject(对象 数据)在 ArgsTry.Program.Main(String[] args) 在 c:\apps\ArgsTry\ArgsTry\Program.cs: 第 14 行

C:\Apps\ArgsTry\ArgsTry\bin\Debug>

【问题讨论】:

标签: c# console console-application


【解决方案1】:

向控制台应用程序传递参数很容易:

using System;

public class CommandLine
{
   public static void Main(string[] args)
   {
       for(int i = 0; i < args.Length; i++)
       {
           if( args[i] == "-throw" )
           {
               // call http client args[i+1] for URL
           }
       }
   }
}

至于剪贴板,见:

http://msdn.microsoft.com/en-us/library/system.windows.forms.clipboard.aspx

【讨论】:

  • 感谢您的回复。如上所述,我已经更新了我的 qu。尝试了剪贴板,但收到错误。
【解决方案2】:

请参阅下面的参数,您可以使用它来读取运行 exe 文件时传递的所有值。

static void Main(string[] args) {

【讨论】:

  • args[0] 将喜欢“-throw”,args[1] 将是 url,args[n...] 将是后续值。
  • 好的。之后,如何在命令行上查看响应?用 writeline() ?
  • Console.Writeline() 是你的朋友。 :)
猜你喜欢
  • 2023-04-08
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多