这个有点难以解释,但我会尽力而为。
我通过字符串数组将目录列表传递到批处理文件中,该字符串数组在 Java 中创建,然后使用 Runtime.getRuntime().exec(commands) 传递到 .bat。我遇到的麻烦在于访问命令数组,其大小可能因执行而异。例如,在一次运行期间,“命令”可能包含以下内容:
{“cmd.exe”、“/C”、“开始”、“program.bat”、“stringA”、“stringB”、“stringC”}
前四个元素用于调用批处理文件,因此只有字符串 A、B 和 C 作为参数传递到批处理文件 (program.bat)。但是,在下一次运行时,“命令”可能如下所示:
{“cmd.exe”、“/C”、“开始”、“program.bat”、“stringA”、“stringB”、“stringC”、stringD、stringE}
如您所见,参数列表中添加了另外两个字符串。我的问题是:在我的批处理文件中,我有这个:
::Get stringA (param 1)
set stringA=%1
::Get stringB (param 2)
set stringB=%2
::Get stringC (param 3)
set stringC=%3
这需要三个字符串参数(来自第一个“commands”数组)并将局部变量设置为传递给相应参数的任何值。我想知道是否有办法从批处理文件中确定参数的数量(例如,来自第二个“命令”数组),并相应地设置/创建适当数量的局部变量。我主要关注 Java,所以批处理文件对我来说还是相当新的。任何建议都将不胜感激,因为我一直试图自己解决这个问题一段时间,但没有成功。