如何在批处理可执行文件中使用制表符来完成一行?

How to use tab in a batch executable to complete a line?

我正在为 .jar 文件编写启动器脚本,因为出于某种原因,我的许多用户在双击时遇到问题 运行 即使使用正确的 jre 和 javaw.exe 作为他们的 .jar默认软件开启器。罐子只会用 java -jar foobar.jar 打开。所以我正在编写一个脚本来执行此操作,但每次更新时 jar 名称都会更改。它将是 java -jar foobar3.0.jarjava -jar foobar4.0.jar。有没有一种方法可以编写一个脚本来执行类似 java -jar foobar TAB 的操作,以便它自动完成名称的其余部分,因为这是文件夹中唯一具有该名称的文件?

尝试使用 java -jar foobar*.jar* 是标准的正则表达式通配符,表示任意字符串;在此上下文中,它表示将构成有效路径的任何字符串。请注意,这意味着如果有任何其他以 foobar 开头的 jar 文件,那么它选择哪个是依赖于实现的,即你无法预测它。

而不是搜索 "tab"/autocomplete,您可能需要查看的是如何匹配文件名。

使用 * 应该可以解决您的问题,因此该行类似于 java -jar foobar*.jar。绝对适用于 Linux,也应该适用于 Windows。 (您没有指定操作系统)。

现在,如果有多个文件匹配该模式,这可能会出现问题。如果你确定文件夹里只有一个就好了。

另一个建议是不要为每个版本更改 jar 的名称 - 将它们放在具有版本名称和自述文件或其他内容的 zip 文件中,并保持基本 jar 名称相同 - 这样用户就可以删除现有文件夹中的新版本并覆盖它,无需更改路径。