我正在寻找一种工具或方法来找出已传递给程序的命令行参数,例如当它由另一个程序运行时(启动器应用程序场景)。
答案1
答案2
您也可以不使用 Process Explorer,而是使用 Windows 的 WMI 服务来执行此操作。从命令提示符运行以下命令:
WMIC path win32_process get Caption,Processid,Commandline
如果您想要将输出转储到文件(使其更容易阅读),请使用 /OUTPUT 开关:
WMIC /OUTPUT:C:\Process.txt path win32_process get Caption,Processid,Commandline
答案3
也可以通过使用任务管理器。
打开任务管理器(通过 CTRL-SHIFT-ESC、CTRL-ALT-DELETE 或任何其他方法)。
对于 Windows 7(可能还有 Windows XP):
- 转到“进程”选项卡。在“视图”菜单上,选择“选择列...”。
- 勾选“命令行”复选框,然后单击“确定”。(您可能需要向下滚动才能找到它)
对于 Windows 8:
- 转到“详细信息”选项卡。右键单击任意列(例如名称、PID 等),然后选择“选择列”。
- 勾选“命令行”复选框,然后单击“确定”。(您可能需要向下滚动才能找到它)
当前显示的列中将添加一列命令行。
答案4
如果进程已在运行且不会很快终止,上述答案非常有用。但是,如果您需要(就像我一样)执行此操作,也许进程会多次启动和/或快速终止,或者记录较长时间内的事件,那么可以使用进程监控。
基本上,它记录系统中的各种事件,在这种情况下,我们可以只过滤“进程启动”事件和我们想要监视的进程的名称,如下所示:
然后只需保持进程监视器运行,并执行任何操作以使您想要记录的进程运行。您可以在“详细信息”列或“命令行”列(取决于您如何配置它们)中看到命令行参数。例如:
当然,通过这种方式,您可以提取更多相关信息,例如工作目录是什么、在进程中传递了哪些环境变量等等...还可以轻松地将结果导出到文件中。