相关疑难解决方法(0)

C#命令行解析引用路径和避免转义字符

如何解析要解释为路径的命令行参数?args []包含在引用时自动连接的字符串,例如:

example.exe一二"三四"

args[0] = one
args[1] = two
args[2] = three four
Run Code Online (Sandbox Code Playgroud)

但是,args []不会将属性解析为"C:\ Example \"作为参数.相反,它将提供参数为"C:\ Example""(包含额外的引用.)这是由于路径中的反斜杠被视为转义字符,因此用户在命令上提供的结束引用-line成为论证的一部分.

.例如:

example.exe一个"C:\ InputFolder""C:\ OutuptFolder \"

args[0] = one
args[1] = C:\InputFolder"
args[2] = C:\OutputFolder"
Run Code Online (Sandbox Code Playgroud)

一个简单的kludge可能是:

_path = args[i].Replace("\"", @"\");
Run Code Online (Sandbox Code Playgroud)

但是,我确信这是最好的做法.如何正确解析一个包含路径的命令行,防止args []数组被不正确地填充已被解析为转义字符的stings?

注意:我不想在我的项目中包含整个命令行解析库!我只需要处理引用的路径,并希望以"手动"的方式这样做.请不要推荐NConsoler,Mono或任何其他大型"厨房水槽"命令行解析库.

另请注意:据我所知,这不是一个重复的问题.虽然其他问题集中在通用命令行解析上,但这个问题特定于当路径的一部分被解释为转义序列时路径引入的问题.

c# command-line escaping

23
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

command-line ×1

escaping ×1