我想快速修改一个简单的 .bat 以在执行字符串中插入所选的输入文件。即,简单的 .bat 字符串是:
java -cp myapp.jar infile
想知道是否有一种巧妙的方法可以将来自 Win 资源管理器(或其他文件管理器)的 infile 发送到这样的字符串,而无需每次都通过命令行输入?此外,java 可能需要额外的控件,因此在正确准备的 .bat 中,唯一的变量将是字符串末尾的 infile 名称。提前感谢您的想法!
答案1
这是最终的解决方案(感谢所有贡献者):在注册表中所需文件关联的 Command 键下创建一个带有 infile-name 变量的 exec 字符串。如有必要,创建关联和后代键。
Windows Registry Editor Version 5.00
HKEY_CLASSES_ROOT\SystemFileAssociations\.myfiletype\shell\subtitle
@=Open with Myapp...
HKEY_CLASSES_ROOT\SystemFileAssociations\.myfiletype\shell\subtitle\command
@="C:\sys_path_to\javaw.exe" -cp "C:\path_to\Myapp.jar" org.appropriate.java.class %1
其中%1
是通过 shell 上下文菜单传递的 .myfiletype 的 infile-name 变量(在 subtitle 键中指定)。这完全接管了最初由 bat 编写的字符串。需要替换java.exe
为javaw.exe
才能在无 shell 中运行它。
工作非常顺利,棒极了。