meh*_*meh 12 .net c# console-application string-length command-line-arguments
我正在用C#创建一个控制台应用程序,在执行时,它会传递一堆数据.其中三个是短字符串,例如用户名,密码等.但是,其中一个是相当冗长的XML文档.
字符串在作为命令行参数传递时可以多长时间?
是否有更好的替代方案可以在执行时将数据传递给C#控制台应用程序?
Reg*_*for 16
CreateProcess函数的最大命令行长度为32767个字符.此限制来自UNICODE_STRING结构.
CreateProcess是创建进程的核心功能,所以如果你直接与Win32对话,那么这是你唯一需要担心的限制.但是,如果您通过其他方式到达CreateProcess,那么您通过的路径可能有其他限制.
如果您使用的是CMD.EXE命令处理器,那么您还需要遵守CMD.EXE强加的8192字符命令行长度限制.
如果您正在使用ShellExecute/Ex函数,那么您将受到ShellExecute/Ex函数强加的INTERNET_MAX_URL_LENGTH(大约2048年)命令行长度限制.(如果您在Windows 95上运行,则限制仅为MAX_PATH.)
有什么更好的方法或替代方法 - 使用文件,可能是XML,包含所有参数,并将此文件作为命令行参数传递.