commandlineparser / commandlineparser/commandline

Backslash parsing problem in argument.

Ouverte
#918 1 commentaire 1 réaction 0 personnes assignées Voir sur GitHub
Langage dominant
C#
Étoiles
4.8k
Forks
478
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

**Describe the bug**
Read string option with backslash \ and " results in reading " in the string.

**To Reproduce**
```
public class Options
{
[Option('P', "path", Required = true, HelpText = "Set working directory path.")]
public string Path { get; set; }
}

static void Main(string[] args)
{
string path = "";

var result = Parser.Default.ParseArguments(args)
.WithParsed(o =>
{
path = o.Path;
});

if (result.Tag == ParserResultType.Parsed)
{
Console.WriteLine($"Path: {path}");
}
}
```
1. Passing in argument `-P "C:\path\to\read\"`
2. Console output is `Path: C:\path\to\read"`

**Expected behavior**
Read backslash as it is. In the above example, output should be `Path: C:\path\to\read\`

**Additional context**
Am i missing some options?
Ref [issues/226](https://github.com/commandlineparser/commandline/issues/226) reports the same problem, still not fixed?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par reproduire le problème avec la classe Options et l’argument de ligne de commande fournis, puis suivez le chemin d’analyse des arguments qui gère les antislashs entre guillemets. Vérifiez le comportement en vous référant à l’issue 226 liée pour le contexte. C’est terminé lorsqu’un antislash final est conservé dans la valeur Path analysée et que la reproduction produit la sortie attendue.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp
Domaine
cli
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.