傳遞非常長的文件路徑時,我得到了截斷的參數。我需要啓動一個程序,並通過命令params傳遞所有內容 - 有時它只是截斷命令。它在全球範圍內完成 - 所以它不僅是每個參數的問題,而且也是整體的問題。C#Process.Start參數截斷
編輯: 該問題可能是命令行長度的限制,因爲monkey_p表示。問題是:如何繞過它? (改變工作目錄不會做becouse文件可以存在於不同的位置)。
傳遞非常長的文件路徑時,我得到了截斷的參數。我需要啓動一個程序,並通過命令params傳遞所有內容 - 有時它只是截斷命令。它在全球範圍內完成 - 所以它不僅是每個參數的問題,而且也是整體的問題。C#Process.Start參數截斷
編輯: 該問題可能是命令行長度的限制,因爲monkey_p表示。問題是:如何繞過它? (改變工作目錄不會做becouse文件可以存在於不同的位置)。
如何解決此限制 解決此限制,使用一個或 多個下列方法(如 根據您的情況):
- 修改 需要程序長命令 行,以便它們使用 包含參數信息的文件, ,然後在命令行中包含文件 的名稱。
例如,代替使用 ExecutableFile.exe參數1 參數2 ...在批處理文件ParameterN命令行 ,修改程序 使用命令行是類似於 下面的命令行,其中 PARAMETERFILE是包含 所需的參數(參數1 參數2 ... ParameterN)的文件:
ExecutableFile.exe c:\temp\ParameterFile.txt
- 使用大環境 變量,這樣的環境 變量包含比任何 2047年或8191個字符以下(如適當 到您的操作系統),修改 程序。
例如,如果PATH環境 變量包含比任 2047或8191個字符(如 適當操作系統), 使用下列 一種或多種方法來減少的 字符數:
- 使用較短的名稱作爲 文件夾和文件。
- 減少文件樹的深度 。
- 將文件存儲在較少的 文件夾中,因此PATH環境 變量中需要的文件夾較少,爲 。
- 調查可能的 方法,您可以使用這些方法來減少PATH的 依賴項,以查找.dll 文件。
即從Microsoft Support,所以沒有什麼有用的我 - 似乎這限制無法增加,也沒有辦法以任何其他方式運行...
我會試圖做的是:記住每個文件的路徑,將它們移動到某個DIR,然後運行程序並將CurrentDirectory設置爲DIR,然後傳遞文件名並在程序結束後將文件移回原位 - 醜陋,醜陋,醜陋的,我知道,但似乎沒有其他的方式...
我不確定你的問題是什麼,但命令行有一個限制。此相同的限制將是有效的Process.Start(命令,參數)
在運行Microsoft Windows XP 或更高版本中, 字符串,你可以在命令提示符 使用的最大長度爲電腦8191個字符。在 運行Microsoft Windows 2000或Windows NT 4.0的計算機上,可以在命令提示符處使用 字符串的最大長度爲 字符爲2047 個字符。
可能有另一個問題:sp aces中的參數,因爲空間用於在參數之間進行中斷。圍繞參數使用引號。 – 2009-07-29 18:45:42
1.所有參數都被引號括起來 2.即使一個被引號包圍的長參數被截斷 – argh 2009-07-30 17:44:44