C#进程。启动参数被截断
当传递很长的文件路径时,我得到了截断的参数。我需要启动一个程序,并通过命令参数传递所有信息-有时它只是截断命令。它是全局性的,所以这不仅是每个参数的问题,也是整个参数的问题 编辑:C#进程。启动参数被截断,c#,.net,process,truncate,C#,.net,Process,Truncate,当传递很长的文件路径时,我得到了截断的参数。我需要启动一个程序,并通过命令参数传递所有信息-有时它只是截断命令。它是全局性的,所以这不仅是每个参数的问题,也是整个参数的问题 编辑: 正如monkey_p所说,问题可能在于命令行长度的限制。问题是:如何绕过它?(更改工作目录不行,因为文件可能存在于不同的位置)。我不确定您的问题是什么,但命令行有一个限制。同样的限制也适用于Process.Start(命令,args) 在运行Microsoft Windows的计算机上 XP或更高版本中的最大长度 可
正如monkey_p所说,问题可能在于命令行长度的限制。问题是:如何绕过它?(更改工作目录不行,因为文件可能存在于不同的位置)。我不确定您的问题是什么,但命令行有一个限制。同样的限制也适用于Process.Start(命令,args) 在运行Microsoft Windows的计算机上 XP或更高版本中的最大长度 可以在命令中使用的字符串 提示符为8191个字符。在…上 运行Microsoft Windows的计算机 2000或Windows NT 4.0,最大 可以使用的字符串的长度 在命令提示下为2047 人物 如何绕过限制 绕过限制,使用一个或多个 以下更多方法(如图所示) 适合您的情况):
- 修改 需要长命令的程序 行,以便它们使用 包含参数信息, 然后包括文件名 在命令行中
ExecutableFile.exe c:\temp\ParameterFile.txt
- 修改 使用大型环境的程序 变量使环境 变量包含的值小于 2047或8191个字符(如图所示) 适合您的操作系统)
- 使用较短的名称 文件夹和文件
- 减少工作的深度 文件夹树李>
- 以更少的内存存储文件 文件夹,以便使用更少的文件夹 在路径环境中是必需的 变数李>
- 调查可能 可用于降低成本的方法 用于定位.dll的路径的依赖关系 档案
我将尝试做的是:记住每个文件的路径,将它们移动到某个目录,然后运行CurrentDirectory设置为DIR的程序,只需传入文件名,然后在程序结束后将文件移回它们的位置-丑陋,丑陋,丑陋,我知道,但似乎没有其他方法…我认为这就是问题所在-问题是:如何绕过它?可能还有另一个问题:参数中的空格,因为空格用于在参数之间断开。在参数周围使用引号。1。所有参数都用引号2括起来。即使一个长参数被引号包围,也会被截断