【问题标题】:Passing c# command line arguments in a batch file在批处理文件中传递 c# 命令行参数
【发布时间】:2012-06-05 22:20:30
【问题描述】:

我已经构建了一个 c# 代码,它基本上需要四个参数 a1 a2 a3 a4。我正在尝试制作一个批处理文件,以便用户可以输入他的参数并且代码给出特定的输出。我不确定如何将这些参数发送到批处理文件。我尝试创建 exe,但它似乎不起作用。

【问题讨论】:

    标签: c# command-line batch-file command-line-arguments


    【解决方案1】:

    要将参数发送到批处理文件,您可以从命令行(或另一个批处理文件)调用它,如下所示:

    myfile.bat a1 a2 a3

    在批处理文件中,参数由 %1、%2、%3(等)表示,因此在批处理文件中,您可以像这样调用您的 exe:

    myapp.exe %1 %2 %3

    这会将原始参数传递给批处理文件 a1 a2 a3 以及可执行文件。

    在可执行文件中,您可以访问 Main 函数中的参数

    static void Main(string[] args)
    

    参数 a1、a2、a3 将分别位于 args[0]、args[1] 和 args[2] 中。

    【讨论】:

    • 所以如果我给 %1 %2 %3 来制作批处理文件然后从命令行尝试给 myfile.bat a1 a2 a3 它会工作吗?
    • 是的,应该。如果你的“参数”有空格,你会想要使用双引号”,即“Argument 1 With Spaces”,a2,a3
    • 当然谢谢。我还有一个疑问。如果我传递文件,有没有一种方法可以指定文件名而不是整个路径作为参数?我的意思是让路径对所有系统都通用?
    • 您可以使用相对路径(例如,安装 .exe 的路径...尽管由于默认权限,用户通常无法编辑存储在那里的文件,请参阅stackoverflow.com/questions/837488/…),您可以使用 ApplicationData 特殊文件夹 (msdn.microsoft.com/en-us/library/…) 的子文件夹,或者您可以在 app.config 中配置文件的基本路径。然后,使用 Path.Combine(myBasePath, a1) 获取文件的完整路径。
    • 您好,我遇到了一个错误。尽管我正确输入了我的参数,但索引超出边界错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2015-08-30
    • 2013-09-09
    • 2023-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    相关资源
    最近更新 更多