我ftype
在中运行了该命令CMD
,并得到了以下输出:
"C:\Program Files (x86)\Microsoft Office\Office15\WINWORD.EXE" /n "%1" /o "%u"
我%1
之前曾见过作为文件名的占位符,但我从未在命令/n "%1" /o "%u"
的输出中见过ftype
,并且不确定它的含义。
答案1
在不完全确定您所运行的完整命令的情况下给出初步答案:
打开程序时提供给 CMD 的命令行参数最多只能算是难以捉摸。它们实际上不是ftype
您运行的命令的参数,而是 Windows 用于从 Windows 注册表等位置运行命令和程序的不同高级命令的参数的混合。您之所以看到它们,是因为ftype
您运行的命令返回了完整路径名,而打开程序时调用的参数恰好包含在该路径名的末尾。
一些这些论点都被记录下来,作为cmd
命令和start
命令(请参阅文件关联部分以获取 RVD 链接)。
其他的也有记录,但是更难实现。链接的答案是我在所有 StackExchange 站点中能够找到的唯一一份用于打开程序的命令行参数列表,其中的信息来自 Microsoft Developer Network 站点上一个晦涩难懂的来源(现已删除)的评论(!)。
还有一些不是 Windows 原生参数,而是由运行它们的程序创建和定义的。例如,根据在 Microsoft Word 上,Word 有自己的命令行参数,其中一个参数首先出现在上面的列表中。根据该链接,/n
Word 使用该参数来启动新实例:
/n
启动一个没有打开任何文档的新 Word 实例。在每个 Word 实例中打开的文档不会作为选项出现在窗户其他实例的菜单。
您正确地猜到该%1
参数是指传递给程序的文件名,但剩下的一切很可能是一个全局命令行参数,Windows(愚蠢地)决定应该保持未记录的状态。
找出这些是什么可能只有您才能做到,并且需要使用来echo
确定这些参数的内容。
参考
Rob van der Woude - 批处理文件 - START 命令
如何使用启动命令行开关启动 Word 2010、Word 2007、Word 2003、Word 2002 和 Word 2000