Win .bat 文件即时修改和执行

Win .bat 文件即时修改和执行

我想快速修改一个简单的 .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.exejavaw.exe才能在无 shell 中运行它。

工作非常顺利,棒极了。

相关内容