Мне нужно получить доступ к командной строке из приложения C#. Я не могу найти способ обнаружить несогласованные двойные кавычки, если я использую параметр «args».Доступ к командной строке с использованием C#
Приложение, в котором я работаю в данный момент, имеет возможность шифровать строку, которую вы передаете ей через командную строку.
например.
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
Программа полностью игнорирует двойную кавычку, которая не является тем, что ожидал пользователь. Я хотел бы обнаружить такие случаи и сообщить пользователю о несоответствующей/неизолированной цитате, иначе они могут закончиться зашифрованной версией неправильной строки.
+1 пришел сюда, чтобы опубликовать аналогичное решение – Habib