我創建了一個運行bat文件的自動化測試。這個abc.bat是使用應用程序組裝器插件生成的。在bat文件中,類路徑已經設置並且Java命令已經執行)。在Linux上,它的正常工作,但在Windows環境下,我得到的錯誤:執行bat文件時輸入行的問題太長了
輸入線過長
從批處理文件執行的路徑爲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
它工作正常,並且有沒有問題「的輸入行太長」。這是解決這個問題的好方法嗎?以及如何使用流程生成器自動執行此操作?