4

我知道要使用命令行参数,我必须这样做。

int main(int argc, char* argv[])

现在我读到的大多数关于接受命令行参数的文档都解释了这种情况,如下所示:

命令行参数在 DOS 或 Linux 等命令行操作系统中的程序名称之后给出,并从操作系统传递给程序。

所以我知道打开我的程序的唯一方法是像我一样正常打开它,要么开始调试,要么打开 exe 文件

现在看来,要使用命令行参数,必须以不同的方式打开程序,使用命令行(例如 Windows 命令提示符),然后在其后写入参数。

所以我的问题是

如何使用命令行打开我的程序,以及如何在程序名称后输入参数?

4

9 回答 9

6

为简单起见,我假设您使用的是 Windows 7。

最简单的方法是打开一个 DOS 框,然后将应用程序拖放到它上面。这将插入可执行文件的路径。之后,您可以开始输入您希望传递的命令行参数。它最终应该看起来像这样:

C:\Users\cscott> "C:\Users\cscott\Documents\myApp.exe" argument1 argument2

注意:正如评论中提到的,这在 windows vista 上不起作用,我在撰写本文时并不知道这一事实。

于 2012-09-05T15:48:25.983 回答
4

我假设您使用的是 IDE,我会大胆猜测它是 Visual Studio。如果我是对的,有两种方法 - 一种,打开包含已构建可执行文件的文件夹 - 默认情况下它将位于 {Solution Directory}/{Project Directory}/bin/{Build Configuration} 中。在那里运行命令行。另一个选项是打开项目属性,然后在“调试”选项卡下(在 VS 2010 - 它因版本而异)将您的命令行标志放在标有“命令行参数”的框中。

于 2012-09-05T15:49:49.757 回答
2

将参数传递给程序的一些方法:

  • 打开命令提示符(如cmd.exeWindows 上的 PowerShell 或 PowerShell),然后键入: your_program.exe arg1 arg2 arg3.
    您可以在快捷方式或脚本(如批处理或 sh 脚本)中执行相同的操作。

  • 在 IDE 中编辑运行配置。
    例如,Eclipse 允许您为每个运行配置分别设置命令行参数。这在开发和调试过程中很有帮助。

  • 在 Windows 上,将文件拖放到可执行文件上。拖动文件的文件名将作为命令行参数传递。

  • 在 Windows 上,将文件扩展名与文件类型(assoc命令)相关联,并将该文件类型与运行程序的命令(命令)相关联ftype。现在,当这样一个文件被打开时,无论是在命令解释器中还是通过双击,在幕后发生的事情是你的程序以该文件的路径作为参数运行。

  • 从另一个程序以编程方式运行您的可执行文件并将参数作为变量传递。
    例如在 Python 中:
    subprocess.call(['my_program.exe','arg1','arg2'])

于 2012-09-05T15:49:45.903 回答
1

在 Windows 中,您必须使用命令提示符导航到您的可执行位置,并且可以通过说Myexe.exe first_arg second_arg.

或者,您可以右键单击您的 exe 文件,然后在文件设置中指定一些命令行参数,以便在双击打开它时提供给它。

另一种方法是编写一个简单的批处理脚本,它只调用你的程序C:/Full/Path/To/Your/Program/app.exe first_arg second_arg并运行它。

在 Visual Studio 或您首选的 IDE 中,您可以在项目设置中选择从 IDE 内部执行时为您的程序指定一些命令行参数。

于 2012-09-05T15:47:51.787 回答
1

这是我在linux中使用的一个简单示例

./myprogram args1 args2

你可以像这样解析它

int
main (int argc, char **argv)
{
  if (argc >= 2) {
     std::string param(argv[1]);
  }
  ///etc
}
于 2012-09-05T15:49:35.230 回答
0

有东西会启动你的程序。这取决于传递它的论点。所有常用的 shell 都会解析命令行(尽管并不总是以相同的方式)以向您显示参数。在 Windows 下,左键单击桌面和任务栏中的按钮将打开一个配置窗口,其中有一个“快捷方式”选项卡,您可以在其中输入命令行作为“目标:”。Unix 下的 rc 文件(在启动时执行)基本上是 shell 脚本,而 cron 文件(定时启动)也需要一个命令行(而不仅仅是一个孤立的命令)。等等。

在其他情况下,您可以将文件类型(扩展名)映射到当您单击该类型的文件或下载该文件时将执行的命令。在这种情况下,如果不出意外,您至少会获得文件的完整路径。

在您只能获取文件名的少数情况下,编写自己的 shell 脚本以在调用您的程序时添加额外的参数是相当容易的。

于 2012-09-05T16:44:59.087 回答
0

您可以通过打开命令提示符和 cd 到路径并输入 exe 名称后跟参数来执行此操作:

 eg: bob.exe bob dylan

你的exe是bob,两个参数是bob和dylan ...

...或者您可以创建快捷方式并右键单击,选择属性,快捷方式并将参数添加到目标字段的末尾。

"C:\bob.exe" /bob dylan

您的 IDE 中可能有一个选项,具体取决于它是什么。

于 2012-09-05T15:47:25.467 回答
0

您可以在从命令提示符启动时编写,您可以创建快捷方式并在名称后添加参数,您可以在调试时在某些 IDE 中添加参数,或者您可以使用某些参数与其他程序一起调用您的程序。

于 2012-09-05T15:49:44.563 回答
0
<path of your program> <Arguments separated by space>
于 2012-09-05T15:46:45.480 回答