我需要从 C# 应用程序中访问命令行。如果我使用“args”参数,我找不到检测不匹配双引号的方法。
我目前正在处理的应用程序有一个选项来加密您通过命令行传递给它的字符串。
例如。
program.exe -encrypt somestring
结果是:
EZs/6rWxvJ82+VE8unJ0Xw==
现在,如果用户输入:
program.exe -encrypt somestring extra characters
它忽略“somestring”之后的所有内容(您仍然可以通过“args”参数访问其余值)。
您可以使用双引号轻松解决此问题:
program.exe -encrypt "somestring extra characters"
当然,如果你想使用嵌入式引号,你可以用“\”转义它们:
program.exe -encrypt "somestring \"extra\" characters"
当用户输入如下内容时会出现问题:
program.exe -encrypt "somestring extra characters
或者:
program.exe -encrypt somestring ex"tra characters
该程序将完全忽略双引号,这不是用户所期望的。我想检测这样的情况并通知用户不匹配/未转义的引号,否则他们最终可能会得到错误字符串的加密版本。