C#学习教程:C#Process.Start参数被截断分享


C#Process.Start参数被截断

传递非常长的文件路径时,我有截断的参数。 我需要启动一个程序并通过命令参数传递它 – 有时它只是截断命令。 它是全局的 – 因此它不仅是每个参数的问题,而且是整个问题。

编辑:问题可能是命令行长度的限制,正如monkey_p所说。 问题是:如何绕过它? (更改工作目录不会因为文件可以存在于不同的位置)。

我不确定你的问题是什么,但命令行有一个限制。 同样的限制对Process.Start(命令,args)有效

在运行Microsoft Windows XP或更高版本的计算机上,可在命令提示符处使用的字符串的最大长度为8191个字符。 在运行Microsoft Windows 2000或Windows NT 4.0的计算机上,您可以在命令提示符处使用的字符串的最大长度为2047个字符。

如何解决限制要解决限制,请使用以下一种或多种方法(根据您的具体情况):

例如,不要在批处理文件中使用ExecutableFile.exe Parameter1 Parameter2 … ParameterN命令行,而是修改程序以使用与以下命令行类似的命令行,其中ParameterFile是包含所需参数的文件(parameter1 parameter2 … ParameterN):

ExecutableFile.exe c:tempParameterFile.txt

例如,如果PATH环境变量包含多于2047或8191个字符(适用于您的操作系统),请使用以下一种或多种方法来减少字符数:

这是来自Microsoft支持 ,所以没有什么对我有用 – 似乎这个限制不能增加,并且没有办法以任何其他方式运行它…

我将尝试做的是: 记住每个文件的路径,将它们移动到某个DIR然后运行程序,将CurrentDirectory设置为DIR并只传入文件名,并在程序结束后将文件移回其位置 -丑陋,丑陋,丑陋,我知道,但似乎没有别的办法……

上述就是C#学习教程:C#Process.Start参数被截断分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031969.html

发表评论

邮箱地址不会被公开。 必填项已用*标注