我创建了一个运行 bat 文件的自动化测试。此 abc.bat 是使用应用程序汇编插件生成的。在 bat 文件中,已设置类路径并已执行 Java 命令)。在 Linux 上,它工作正常,但在 Windows 环境下,我收到以下错误:
输入行太长
执行批处理文件的路径是C:\build\work\work1\abc\abc.bat
. 我必须保持这条路,不能减少它喜欢C:\build\abc.bat
。
我正在使用进程生成器来运行这个 abc.bat 文件。
public Test(Path wp, Path exe) throws IOException {
builder = new ProcessBuilder()
.directory(wp.toFile())
.command(wp.resolve(exe).toAbsolutePath().toString())
.redirectOutput(Redirect.INHERIT)
.redirectError(Redirect.INHERIT);
builder.start();
}
路径 wp 包含 C:\build\work\work1 的路径。(我正在从系统环境变量中获取此路径)。路径exe包含abc\abc.bat的路径
我做了一些研究,发现可以通过更改组策略来解决长路径问题,如下所示:
点击 Windows 键,输入 gpedit.msc 并按 Enter。
导航到本地计算机策略 > 计算机配置 > 管理模板 > 系统 > 文件系统
并启用 win32 长路径。
这对我不起作用。我使用的是 Windows 10 企业版,操作系统版本为 14393.1593。
另一种方法是使用 Subst 命令。手动我可以使用命令提示符映射驱动器,例如:
C:\build> Subst X: “C:\build\work\work1”
X:\>abc\abc.bat
它工作正常,不存在“输入行太长”的问题。这是克服这个问题的好方法吗?以及如何使用流程构建器自动执行此操作?