我試圖將路徑串列作為引數傳遞給二進制檔案。我已使用檢索檔案
$files = (Get-ChildItem .\folder).FullName
我想將它們傳遞給我的二進制檔案,如下所示:
.\bin.exe $files[0] $files[1] ...
換句話說,我想將每個陣列元素作為單獨的引數傳遞給可執行檔案。就我而言,陣列中還有很多元素:大約 100000。
我嘗試了以下方法:
.\bin.exe $files
它似乎適用于少量元素(大約 400 個絕對路徑)。然后Powershell拋出以下錯誤:
ResourceUnavailable: Program 'xml-to-graph.exe' failed to run: The filename or extension is too long.At line:1 char:1
.\xml-to-graph.exe -output-dir fixtures -format "%n %m`n%.2FM`n%a`n" …
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
我怎樣才能做到這一點?
uj5u.com熱心網友回復:
就我而言,陣列中還有很多元素:大約 100000。
那會很困難。“傳遞給二進制檔案”意味著“構建命令列并執行它”,并且命令列有長度限制(在 Windows 上為 8 kB,請參閱 MSDN)。
您可以看到您在收到的錯誤中達到了該限制(“檔案名或擴展名太長。”)。
我怎樣才能做到這一點?
沒有辦法繞過長度限制。你必須要么
- 檢查
xml-to-graph.exe程式的檔案以查看它是否支持獲取輸入檔案的替代方法,或 - 如果可能的話,分批完成你的作業,保持在限制之下
xml-to-graph.exe似乎是一個 XML 轉換程式,它將許多 XML 檔案作為輸入并生成一個輸出檔案。根據該程式的作業方式,可能還有第三種選擇,將所有小的 XML 檔案合并為一個大的檔案,然后呼叫xml-to-graph.exe joined.xml.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/331885.html
