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
プログラムは二重引用符を完全に無視しますが、これはユーザーが期待していたものではありません。このようなケースを検出し、引用符の不一致/エスケープされていないことをユーザーに通知したいと思います。そうしないと、暗号化されたバージョンの間違った文字列になってしまう可能性があります。